ayuda en un código (java)

L
public void hayParesOfertaDemandaEmpleo()
    {
        p=0;
        l=0;
        i=0;
        j=0;
        for(i=0;i<(empleo.size()-1);i++)
        {
            if(empleo.get(i) instanceof OfertaEmpleo)
            {
            OfertaEmpleo tam=(OfertaEmpleo) empleo.get(i);
            p=1;
                    if(tam.perfil instanceof PerfilEspecialista)
                    {
                    PerfilEspecialista fac=(PerfilEspecialista) tam.perfil;
                    sa=fac.compara();
                    }else if(tam.perfil instanceof PerfilTitulado){
                    PerfilTitulado fac=(PerfilTitulado) tam.perfil;
                    sa=fac.compara();
                    }
            }else if(empleo.get(i) instanceof DemandaEmpleo)
            {
            DemandaEmpleo tam=(DemandaEmpleo) empleo.get(i);
            p=2;
                    if(tam.perfil instanceof PerfilEspecialista)
                    {
                    PerfilEspecialista fac=(PerfilEspecialista) tam.perfil;
                    sa=fac.compara();
                    }else if(tam.perfil instanceof PerfilTitulado){
                    PerfilTitulado fac=(PerfilTitulado) tam.perfil;
                    sa=fac.compara();
                    }
            }
                    for(j=1;j<empleo.size();j++)
                    {    
if(empleo.get(j) instanceof OfertaEmpleo) { OfertaEmpleo tom=(OfertaEmpleo) empleo.get(j); l=1; if(tom.perfil instanceof PerfilEspecialista) { PerfilEspecialista foc=(PerfilEspecialista) tom.perfil; so=foc.compara(); }else if(tom.perfil instanceof PerfilTitulado){ PerfilTitulado foc=(PerfilTitulado) tom.perfil; so=foc.compara(); } }else if(empleo.get(j) instanceof DemandaEmpleo) { DemandaEmpleo tom=(DemandaEmpleo) empleo.get(j); l=2; if(tom.perfil instanceof PerfilEspecialista) { PerfilEspecialista foc=(PerfilEspecialista) tom.perfil; so=foc.compara(); }else if(tom.perfil instanceof PerfilTitulado){ PerfilTitulado foc=(PerfilTitulado) tom.perfil; so=foc.compara(); } }
if(p!=l&& so.equals(sa)) { if(empleo.get(i) instanceof OfertaEmpleo) { OfertaEmpleo temp=(OfertaEmpleo)empleo.get(i); paresEmpleo.add(temp); } if(empleo.get(i) instanceof DemandaEmpleo) { DemandaEmpleo temp=(DemandaEmpleo) empleo.get(i); paresEmpleo.add(temp); } if(empleo.get(j) instanceof OfertaEmpleo) { OfertaEmpleo tomp=(OfertaEmpleo) empleo.get(j); paresEmpleo.add(tomp); } if(empleo.get(j) instanceof DemandaEmpleo) { DemandaEmpleo tomp=(DemandaEmpleo) empleo.get(j); paresEmpleo.add(tomp); } } l=0; } p=0; } }
Lecherito

Por favor, ejemplos SSCCE ya que sinceramente, no me voy a leer ese código xD

1
tOWERR

¿Puedes decir que es lo que te falla?¿Que error te dá?

Una cosa, si quieres recorrer todo el array en el for, ¿Porqué le restas uno al tamaño entero, si estás empezando desde la posición 0?
Le restarías 1, si empezarás desde la posición 1, ¿No?

2 respuestas
JuAn4k4

Dios mio, #3 y:

Interfaces, no castees todo a 20285018501 clases que tienen el metodo ".compara()"; que devuelve un "sa" que no se sabe de donde viene ni lo que es, o un "so" que lo mismo.

Y luego hay un if else al final de 4 opciones cuyo codigo es el mismo.

Variables:
tom
temp
tomp
sa
so
foc

Adivina lo que significan sin mirar el código.

Lo que intentas hacer es, cruzar una lista consigo misma para encontrar pares de ¿ OfertaEmpleo - DemandaEmpleo ?

1 respuesta
tOWERR

#4 What?

1 respuesta
JuAn4k4

#5 Digo que lo que dices tu en #3, y además todo eso para #1

1 respuesta
tOWERR

#6 Es que pensaba que me decías a mi algo por lo que le he preguntado sobre el recorrido del array. ¿Sobre eso estoy yo en lo cierto, no?

1 respuesta
JuAn4k4

#7 Si, ya que le pone un i<size
Es o : i<size , o i<=size-1, que viene a ser lo mismo, pero no i<size-1 porque te dejas al ultimo.

#1 Recomendación :

OfertaEmpleo y DemandanteEmpleo deberían ser objetos distintos entre sí, y tenerlos en dos listas distintas, despues recorres ambos

foreach(ofertaEmpleo : ofertasEmpleo)
{

  foreach(demandanteEmpleo : demantantesEmpleo) 
 {
    if (ofertaEmpleo.esCompatible(demandanteEmpleo) {
         pares.add(ofertaEmpleo, demandanteEmpleo);
    }

 }

}
L

gracias a todos por responder ya solucione el problema, en realidad el problema estaba en mi interfaz grafica, al recoger los datos de un jList...., disculpen las molestias

1 respuesta
Lecherito

#9 No molestas a nadie, pero has de aprender a hacer preguntas reales y no poner tu código y ale, que no funciona.

L

si amigo, gracias :D

JON-K0

Por favor, las variables solo se declaran una puta vez.
¿ es tán complicado ponerles un nombre de variable explicativo?

De verdad que tom , temp, tomp, sa, so, foc no es una buena manera de llamar a tus variables y menos si luego vas a un foro a pedir ayuda

Usuarios habituales