Wie schneiden Sie mehrere Sätze?
Habe ich diese Liste:
private List<Set<Address>> scanList;
Also meine Liste enthält mehrere scans, wie Sie sehen können.
Nach jedem scan füge ich neue in der Liste.
Nachdem alle scans fertig sind, möchte ich nur die Adressen, die auftreten, in jedem Satz und legen Sie es in:
private List<Address> addresses;
Macht soetwas schon existiert, im Set/TreeSet/HashSet?
EDIT: nach Antworten, retainAll() ist die richtige Methode. Danke.
Hier ist die Quelle:
Set<Address> addressCross = scanList.get(0);
for (int i = 1; i < scanList.size(); i++) {
addressCross.retainAll(scanList.get(i));
}
for (Address address : addressCross) {
addresses.add(address);
}
InformationsquelleAutor der Frage vale4674 | 2010-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Siehe "retainAll()".
InformationsquelleAutor der Antwort Lavir the Whiolet
können Sie
retainAll(Collection<?> c)
check it out hierAnmerkung: diese operation wird aufgerufen, Kreuzung.
Konvertieren dann zu einer
List
können Sie die MethodeaddAll(Collection<? extends E> c)
die arbeiten sollten zwischen allen Arten von Behältern.zB:
InformationsquelleAutor der Antwort Jack
Mit Guaveman könnte es so machen:
Diese wird eine Sicht erstellt, der die Schnittmenge aller Mengen in der
scanList
und kopiert dann die Adressen in der Kreuzung in einerList
. Sie müssten, um sicherzustellen, dass IhrescanList
hat mindestens ein element in Ihr, natürlich.InformationsquelleAutor der Antwort ColinD