Verificar itens da lista

Eaee galeraa!

Estou com uma duvidaa! E acho que voces podem me ajudar =D

Tenho duas lista, que eu junto em uma terceira, certo?

Porem alguns itens da lista vai vir null, então eu queria adicionar na lista 03 apenas os que não vão vir null…

Alguem sabe como fazer isso?!

segue meu codigo

public class Lista02 {

	private String apelido1;
	private String apelido2;
	private String apelido3;
	private String apelido4;
	private String apelido5;
	private String apelido6;
	private List<String> apelido;
// gets e sets

}

public class Lista01 {

	private String nome1;
	private String nome2;
	private String nome3;
	private String nome4;
	private String nome5;
	private String nome6;
	private List<String> nomes;

// gest e sets

}


public class Main {
	
	public static void main(String[] args) {
		
		List<String> lista01 = testeLista01();
		List<String> lista02 = testeLista02();
		List<String> lista03 = new ArrayList<String>();
		
		for (int i = 0; i < lista01.size(); i++) {  
			lista03.add(lista01.get(i));
			lista03.add(lista02.get(i));
		}  
		System.out.println(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;
	}
}

você pode encapsular sua lista, e fazer um método que adiciona com uma verificação. Ex:[code]public class Teste{

private List<String> nomes;

public void adicionarNome(String nome){
    if(nome != null){
        nomes.add(nome);
    }
}

}[/code]Mas lembre-se de que essa lista deve ser inicializada antes da invocação desse método.

EDIT:Cara, lembrei desse negócio agora ^^ Por que você postou essas classes Lista01 e Lista02, sendo que elas nem são usadas no main?

então, se eu colocar essa verificação

               for (int i = 0; i < lista01.size(); i++) {  
			if (lista01 != null){ //  <<<<  ESTA
				lista03.add(lista01.get(i));
				lista03.add(lista02.get(i));
			}
		} 

mesmo assim eu vo adicionar os itens null na lista03, minha intenção é não adicionar os null apenas os itens que não são null…

Mas não é essa a verificação que eu sugeri, você tem que validar o item a ser adicionado na lista, e não a lista.

Mas esse exemplo não é real, pois você está adicionando os dados na mão, como você realmente faz para adicionar os dados na lista 3?

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?!

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)); } }

Espero ter ajudado.

Abs

[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é :slight_smile: 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)); } }

Espero ter ajudado.

Abs[/quote]

lista02 também possui nulos.

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?

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.

Então, se o item 3 da lista 1 for null… o item 3 da lista 2 tb vai ser null… isso é ctz…
mas por precaução eu vo validar os dois =D

essa verificação funciona vllw meeu =D

vllw ai quem ajudou com as logicas e tudo mais =D

Tem que validar as duas listas mesmo.
Fiz um EDIT lá, dê uma olhada :slight_smile:

… 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]

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=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); } }