Heim >Java >javaLernprogramm >Wie kann ich zwei Listen in Java effizient vergleichen und gemeinsame und eindeutige Elemente finden?
Vergleich zweier Listen in Java
Sie haben zwei Datensätze, die Sie vergleichen möchten, um festzustellen, wie viele Elemente sie gemeinsam haben. Unter der Annahme, dass es sich nicht um Java List-Objekte handelt, sollten Sie den folgenden Ansatz in Betracht ziehen:
Verwenden von ArrayList
Mit ArrayList können Sie die Methode retainAll verwenden. Diese Methode behält nur Elemente in der ersten Liste bei, die auch in der zweiten Liste vorhanden sind. Zum Beispiel:
import java.util.Collection; import java.util.ArrayList; import java.util.Arrays; public class ListComparison { public static void main(String[] args) { Collection<String> listOne = new ArrayList<>(Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta")); Collection<String> listTwo = new ArrayList<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo")); listOne.retainAll(listTwo); System.out.println(listOne); } }
Dieser Code druckt eine Liste der gemeinsamen Elemente zwischen listOne und listTwo.
Verwenden von HashSet
Wenn Sie möchten Um die wiederholten Werte einzuschließen (d. h. Elemente, die in beiden Listen mehrmals vorkommen), können Sie ein HashSet anstelle von ArrayList verwenden. Da HashSet keine Duplikate zulässt, können Sie nach dem Vergleich die Methode „removeAll“ verwenden, um gemeinsame Elemente aus dem kombinierten Satz von Elementen in beiden Listen zu entfernen. Dadurch erhalten Sie eine Liste eindeutiger, nicht gemeinsamer Elemente:
import java.util.Collection; import java.util.HashSet; import java.util.Arrays; public class ListComparison { public static void main(String[] args) { Collection<String> listOne = Arrays.asList("milan", "iga", "dingo", "iga", "elpha", "iga", "hafil", "iga", "meat", "iga", "neeta.peeta", "iga"); Collection<String> listTwo = Arrays.asList("hafil", "iga", "binga", "mike", "dingo", "dingo", "dingo"); Collection<String> similar = new HashSet<>(listOne); Collection<String> different = new HashSet<>(); different.addAll(listOne); different.addAll(listTwo); similar.retainAll(listTwo); different.removeAll(similar); System.out.printf("One:%s%nTwo:%s%nSimilar:%s%nDifferent:%s%n", listOne, listTwo, similar, different); } }
Dieser modifizierte Code gibt die ähnlichen und unterschiedlichen Elemente zwischen den beiden Listen aus.
Das obige ist der detaillierte Inhalt vonWie kann ich zwei Listen in Java effizient vergleichen und gemeinsame und eindeutige Elemente finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!