Cara, voce complicou um pouquinho. O problema é que o programa nao percorre as duas listas, veja o exemplo: se a lista1 tem 2 elementos e a lista2 tem 6 elementos entao :
int a = lista1.size() + lista2.size();
//teremos a == 8;
int i= 0;
while(i < a){
//quando a >= 2 teremos uma excecao lancada pela lista1
//pois ela nao possui o elemento lista1.get(2), entao o programa nao executa o bloco abaixo
//isto eh, ele sai do loop while
if(lista1.get(i)!= null){
if(lista1.get(i) == lista2.get(0)){
i++;
%>
<%="não é null" %><br>
<%
}
i++;
}else{
if(lista2.get(i)!= null)
i++;
}
}
}
o que recomendo eh q vc utilize o laco foreach da versao 5 do java. Imagine que tenhamos uma lista de pessoas, assim:
List<Pessoa> lista1 = new ArrayList<Pessoa>;
List<Pessoa> lista2 = new ArrayList<Pessoa>;
//aqui voce inclui algumas pessoas na lista
for(Pessoa pessoa1 :lista1){
for(Pessoa pessoa2 :lista2){
if(pessoa1.getNome() == pessoa2.getNome()){
<%="não é null" %><br>
}
}
}
Assim voce nao se procupa com incrementacao, cast, etc.
int a = lista1.size() + lista2.size(); Aqui basta uma das duas listas serem null para ocorrer um NullPointerException.
if(lista1.get(i)!= null){ se você tentar pegar um tentar pegar um índice maior que o tamanho da lista vai ocorrer um IndexOutOfBoundsException.
Acho que ficaria melhor você criar uma nova lista adicionado os elementos das outras que não fossem nulas e aí você faz a tua lógica. Algo mais ou menos assim:[code] List lista3 = new ArrayList();
if (lista1 != null) {
lista3.addAll(lista1);
}
if (lista2 != null) {
lista3.addAll(lista2);
}
for(Object o: lista3){
System.out.println(o);
}[/code]
Obrigado a todos. mas o que quero fazer é uma comparação onde:
lista1 ---> 2 contatos que pagou o debito, e os outros da lista2 não pagou ainda.
lista1.add("joao");
lista1.add("maria");
e
lista2 ---> 6 contatos
lista2.add("eu");
lista2.add("tu");
lista2.add("maria");
lista2.add("ele");
lista2.add("joao");
lista2.add("teste");
a ideia e compara [color=red]lista2[/color] "se tem na " [color=blue]lista1[/color] e preenche uma nova [color=green]lista3[/color] com só os que falta na lista 1