Ich wünschte, ich könnte so etwas wie einen SQL-Minus-Operator (← übertragen) zwischen Listentypen erstellen, und als ich ihn nachschlug, fand ich, dass Apache Commons nützlich war.
Sample.java
List<String> list1 = Arrays.asList("a", "b", "e", "f");
List<String> list2 = Arrays.asList("a", "b", "c", "d", "e");
//Extrahieren Sie, was in Liste1, aber nicht in Liste2 enthalten ist
@SuppressWarnings("unchecked")
Collection<String> result = CollectionUtils.subtract(list1, list2);
System.out.println(result.toString()); // => [f]
Was den Inhalt von CollectionUtils # subtract () betrifft, so scheint ArrayList auf der Grundlage des ersten Arguments (list1) erstellt zu werden, und das zweite Argument (list2) wird mit einem Iterator gedreht, um nacheinander zu entfernen. Es scheint, dass die Reihenfolge eines Arguments (Liste1) garantiert ist. Ich halte es jedoch für richtig, es in den entsprechenden Datentyp zu packen.
Ich wollte gerade einen einfachen und problematischen Code wie ↓ in Serie produzieren.
python
List<String> result = new ArrayList<String>(list1);
result.removeAll(list2);
Recommended Posts