Pessoal, preciso da ajuda de vocês, acredito que seja algo basico, mas enfim.. não sei fazer.
seguinte. tenho uma bean, dentro dele há dois atributos, id e valor.
quero fazer o seguinte.
vou ter duas listas do mesmo tipo.
quero comparar as listas e aonde lista1 tiver o mesmo id da lista 2, o valor da lista2 deve ir pra lista um
fiz isso usando for.. para percorrer as listas, achei meio boquetagem.. tem uma maneira mais inteligente de se fazer isso?
public void lista(){
List<DADOS> lista1 = new ArrayList<DADOS>();
for (int i = 0; i < 10; i++) {
DADOS dados= new DADOS();
dados.setId(i+"");
dados.setValor("Primeira Lista numero "+i);
lista1.add(dados);
}
List<DADOS> lista2 = new ArrayList<DADOS>();
for (int i = 0; i < 10; i++) {
DADOS dados= new DADOS();
dados.setId(i+"");
dados.setValor("Segunda Lista numero "+i);
lista2.add(dados);
}
//Percorre Lista 1
for (int x = 0; x < lista.size(); x++) {
//Percorre Lista 2
for (int i = 0; i < lista2.size(); i++) {
//Verifica se o item da lista um é igual a lista 2
if (lista1.get(x).getId().equalsIgnoreCase(lista2.get(i).getId())){
//Aqui Atribui o valor da lista 2 na lista1
lista1.set(x, lista2.get(i));
x++;
}
}
}
//So pra imprimir mesmo
for (int i = 0; i < lista1.size(); i++) {
System.out.println(lista.get(i).getValor());
}
}