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 listafor(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.
Ate mais
gilmarcand
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:
Obrigado a todos. mas o que quero fazer é uma comparação onde:
lista1--->2contatosquepagouodebito,eosoutrosdalista2nãopagouainda.lista1.add("joao");lista1.add("maria");elista2--->6contatoslista2.add("eu");lista2.add("tu");lista2.add("maria");lista2.add("ele");lista2.add("joao");lista2.add("teste");aideiaecompara[color=red]lista2[/color]"se tem na "[color=blue]lista1[/color]epreencheumanova[color=green]lista3[/color]comsóosquefaltanalista1