O caminho é esse: Fazer uma verificação de null e só adicionar aqueles que não são nulos.
Mas como fazer?
Segue…
for (int i = 0; i < lista01.size(); i++) {
if(lista01.get(i) != null) { // se o elemento da posição I for diferente de null, então...
lista03.add(lista01.get(i));
lista03.add(lista02.get(i));
}
}
[quote=shenn]Então, esse é só um exemplo, as classes lista01 e lista02 não estão servindo pra nada agora…
Então, como eu verifico se um item da lista esta null ou não, para poder adicionar?![/quote]
Da maneira que eu disse, ué quando for adicionar algum item na lista, verifique primeiro se ele está nulo, a ideia do método adicionarNome foi só pra você não ter que ficar colocando if(str != null) em todo lugar.
[quote=TreTaA]O caminho é esse: Fazer uma verificação de null e só adicionar aqueles que não são nulos.
Mas como fazer?
Segue…
for (int i = 0; i < lista01.size(); i++) {
if(lista01.get(i) != null) { // se o elemento da posição I for diferente de null, então...
lista03.add(lista01.get(i));
lista03.add(lista02.get(i));
}
}
Pelo que entendi, existem 2 listas (lista01 e lista02) que vão existir valores null. Que em um momento ele junta as duas listas em uma terceira lista, onde não pode conter null, é isso?
EDIT:
Creio que seja isso…
Então, amigo…você pode criar um método para verificar as listas. De qualquer forma, terá que percorrer elemento por elemento, fazer a verificação de nulls e adicionar caso tal valor não seja null.
Criei um método “verificaListas” passando duas listas como parâmetro (lista01 e lista02).
Obviamente passo as duas listas como parâmetro e, dentro do método, faço a verificação explicada acima e adiciono à lista03.
No final, a exibo…
Espero que seja isso…se não for, avise.
Att
import java.util.ArrayList;
import java.util.List;
public class Teste {
public static void main(String[] args) {
List<String> lista01 = testeLista01();
List<String> lista02 = testeLista02();
List<String> lista03 = new ArrayList<String>();
System.out.println("Lista01 =>" + lista01);
System.out.println("Lista02 =>" + lista02);
lista03 = verificaListas(lista01, lista02);
System.out.println("Lista03 =>" + lista03);
}
private static List<String> testeLista01() {
List<String> lista01 = new ArrayList<String>();
lista01.add("1");
lista01.add("2");
lista01.add("3");
lista01.add(null);
lista01.add("5");
lista01.add(null);
return lista01;
}
private static List<String> testeLista02() {
List<String> lista02 = new ArrayList<String>();
lista02.add("1");
lista02.add("2");
lista02.add("3");
lista02.add(null);
lista02.add("5");
lista02.add(null);
return lista02;
}
private static List<String> verificaListas(List<String> lista01, List<String> lista02) {
List<String> listaRetorno = new ArrayList<String>();
for (int i = 0; i < lista01.size(); i++) {
if(lista01.get(i) != null) {
listaRetorno.add(lista01.get(i));
}
}
for (int i = 0; i < lista02.size(); i++) {
if(lista02.get(i) != null) {
listaRetorno.add(lista02.get(i));
}
}
return listaRetorno;
}
}
[quote=TreTaA]Nenhuma das listas podem ter null?
É isso?
Pelo que entendi, existem 2 listas (lista01 e lista02) que vão existir valores null. Que em um momento ele junta as duas listas em uma terceira lista, onde não pode conter null, é isso?[/quote]
Correto, mas veja se você valida isso no seu código.
Se você rodar o seu código, com as listas que ele colocou como exemplo, vai funcionar, mas não acho isso seguro.
você está deduzindo que se um dado em um certo índice de lista01 não é nulo, o dado no mesmo índice de lista02 também não será.
pode ser frescura minha, mas eu prefiro validar os dois hehehe.
Tem que validar as duas listas mesmo.
Fiz um EDIT lá, dê uma olhada
… se quiser adicionar valores não repetidos na lista03, coloque o seguinte código dentro de cada verificação, ficando assim:
[code]
private static List verificaListas(List lista01, List lista02) {
List listaRetorno = new ArrayList();
for (int i = 0; i < lista01.size(); i++) {
if(lista01.get(i) != null && !listaRetorno.contains(lista02.get(i).toString())) {
listaRetorno.add(lista01.get(i));
}
}
for (int i = 0; i < lista02.size(); i++) {
if(lista02.get(i) != null && !listaRetorno.contains(lista02.get(i).toString())) {
listaRetorno.add(lista02.get(i));
}
}
return listaRetorno;
}[/code]
[quote=digaoneves]Não ficaria muito mais fácil e legível fazer um método pra isso?
Mas novamente, não sei como é seu cenário real.[/quote]
Sem dúvidas.
O bom mesmo seria criar um método que adicione valores dentro da lista.
E dentro desse método fazer a verificação se o item à ser adicionado é null ou não…
Algo como:
private void adicionarValor(String valor, List<String> lista) //lista para o valor ser adicionado
{
if(valor != null && !lista.contains(valor)) { //se o valor for diferente de null e não estiver na lista ainda...
lista.add(valor);
}
}