2010-10-02 1 views
10
List<String> listA = new ArrayList<String>(); 
listA.add("a"); 
listA.add("b"); 
listA.add("c"); 
listA.add("d"); 



List<String> listB = new ArrayList<String>(); 
listB.add("c"); 
listB.add("d"); 
listB.add("e"); 
listB.add("f"); 

ListB contiene due elementi che sono presenti in ListA ("c" e "d") anche.Come si rimuovono i contenuti sovrapposti di un elenco da un altro elenco?

C'è un modo pulito per assicurarsi che listB non contenga questi o altri elementi sovrapposti che potrebbero già esistere in listA?

risposta

17
listB.removeAll(listA) 

Ciò renderebbe il vostro listB contengono solo [e, f].

+1

questo funziona solo con gli elenchi di tipi di oggetti di base (stringa, ecc.) Per i propri oggetti è necessario definire il metodo object.equals in modo che significhi qualcosa con il proprio oggetto. leggi di più su equals qui: stackoverflow.com/questions/8338326/... –