Remover objetos de um java.util.List passando uma collection!

Boa tarde!!

Gostaria de saber como faço para remover vários objetos de um list passando outro list do mesmo tipo de objetos?

Tentei utilizar o método removeAll, mas seu retorno é apenas booleano!!!

Alguém tem uma dica?

Obrigado…

o retorno é um boolean sim… que indica c houve alteração na lista ou não…

porem a remoção é feita na lista, independente do retorno…

Ps.: se equals e hashCode do seu objeto não tiver corretamente implementado a remoção pode falhar

Humm… acredito que seja a implementação do meu equals ou hashCode… você teria um exemplo dessa implementação?

Obrigado Lavieri…

[quote=dahenz]Humm… acredito que seja a implementação do meu equals ou hashCode… você teria um exemplo dessa implementação?

Obrigado Lavieri…[/quote]

sim!

leia tb

c vc usa NETBEANS… aperte ALT + INSERT … e escolha “hashCode e equals …”

ai na tela, escolha os campos que torna um objeto seu unico, que ele monta pra vc

Tentei implementar desta forma:

boolean boo = objetosDisponiveis.remove(objetosDisponiveis.equals(objetosVinculados));

Continua retornando false;

Devo comparar o conteúdo do list?

Obrigado…

[quote=dahenz]Tentei implementar desta forma:

boolean boo = objetosDisponiveis.remove(objetosDisponiveis.equals(objetosVinculados));

Continua retornando false;

Devo comparar o conteúdo do list?

Obrigado…[/quote]

não não… vc não entendeu… entre nos links, leia o que fala sobre Collections, e sobre equals e hashcode…

vou dar uma breve introdução… unico modo de testar igualdade entre objetos em java é usando object.equals(other); sendo assim é necessario implementar equals em todos os objetos…

hashCode é usado para não igualdade, pq se 2 objetos tem hashCode distintos, isso quer dizer que os objetos são diferentes… porem nem todo objeto com mesmo hashCode é igual…

Coleções usam esses 2 artificios para remover objets, e para verificar c contem…

sendo assim…

suaColecao.removeAll(outraColeacao);

vai fazer uso de equals, para verificar se existem objetos la dentro, e existindo vai removelos… c vc não implementa equals e hashCode, suas collections não funciona…

novamente… leia


assim, implemente o hashCode e o equals corretamente nos seus objetos, e depois use suas collections