Ciao Ho 2 liste che contengono gli stessi oggetti. Vorrei eseguire qualsiasi operazione come intercesct, union, distinct usando il predicato perché non sono in grado di utilizzare equals to comparision.java interscect, union, join, liste distinte con predicato
Esempio:
class Car{
public String id;
public String color;
public int hashcode(){
//id field is used for hashcode
}
public boolean equals(){
//id field is used for equals
}
}
ora ho due elenchi di Cars. Ho bisogno di trovare i duplicati in questo elenco ma non per id solo per colore.
List<Car> carList1 = new ArrayList(){ new Car(1,blue), new Car(2,green)};
List<Car> carList2 = new ArrayList(){ new Car(1,silver), new Car(4,green)};
ho bisogno di trovare secondo oggetto da carList1 (nuova auto (2, verde))
Lista Qualcosa di simile a
Collection.intersect(carList1,carList2,comparator).
In C# vorrei utilizzare per esso LINQ.
Cosa si intende per "predicato"? Se vuoi confrontare due oggetti per trovare se sei uguale puoi usare l'interfaccia Comparator che restituisce 0 se gli oggetti sono uguali. Qui: http://docs.oracle.com/javase/6/docs/api/java/util/Comparator.html –
Non esistono metodi di libreria per questo. Devi farlo da solo. –
Domanda simile: http://stackoverflow.com/questions/5793907/filtering-on-list-based-on-one-property-with-guava – simon