Olá pessoal, estou com um problema muito estranho. Possuo esses dois vetores de listas de inteiro declarados:
List <Integer> singlePorts1[];
List <Integer> singlePorts2[];
Após uma série de processamentos esses vetores de listas são preenchidos com alguns valores. Em certa parte da minha aplicação eu possuo o seguinte código, que esta dentro de duas outras estruturas de repetição sobre os índices i e j, mas que não são importantes no momento.
for(int k=0;k<singlePorts1[i].size();k++){
for(int l=0;l<singlePorts2[j].size();l++){
System.out.println(("TESTE IF: "+singlePorts1[i].get(k)+" = "+singlePorts2[j].get(l)));
if(singlePorts1[i].get(k)==singlePorts2[j].get(l)){
System.out.println("YESS");
}
}
A idéia é que em algum momento singlePorts1[i].get(k) seja igual a singlePorts2[j].get(l)), no entanto, de acordo com o java isso nunca ocorre. Eu coloquei o System.out.println(("TESTE IF: "+singlePorts1[i].get(k)+" = "+singlePorts2[j].get(l)));
justamente para testar isso, como saída eu consigo:
“TESTE IF: 1300 = 1300” e mesmo os valores sendo iguais o código dentro do IF não é executado.
NA busca de soluções fiz teste com o seguinte código:
for(int k=0;k<singlePorts1[i].size();k++){
for(int l=0;l<singlePorts2[j].size();l++){
int a = singlePorts1[i].get(k);
int b = singlePorts2[j].get(l);
System.out.println(("TESTE IF: "+singlePorts1[i].get(k)+" = "+singlePorts2[j].get(l)));
if(a==b){
System.out.println("YESS");
}
}
Neste caso o IF funciona normalmente, alguém saberia me dizer porque a minha comparação direta com os elementos das listas não funcionou e tive que usar variaveis primitivas de int para isso ?
Muito obrigado.