Heim >Java >javaLernprogramm >Wie kann ich in Java effizient gemeinsame Elemente zwischen zwei Listen finden?
Gemeinsame Elemente aus zwei Listen abrufen
Beim Arbeiten mit Sammlungen in Java kann es vorkommen, dass Sie nach gemeinsamen Elementen suchen müssen durch mehrere Listen. Es gibt mehrere Ansätze, mit denen Sie diese Aufgabe erfüllen können.
Verwendung von Collection#retainAll()
Die Methode Collection#retainAll() bietet eine unkomplizierte Lösung zum Finden von Gemeinsamkeiten Elemente. Es aktualisiert die aufrufende Liste (listA), indem es alle Elemente entfernt, die nicht auch in der angegebenen Sammlung (listB) enthalten sind. Dadurch bleiben effektiv nur die gemeinsamen Elemente erhalten.
listA.retainAll(listB); // listA now contains only common elements
Erstellen einer neuen Liste
Wenn Sie die ursprünglichen Listen lieber beibehalten möchten, können Sie eine neue Liste namens „Common“ erstellen . Diese Liste wird zunächst mit den Elementen aus ListeA gefüllt, und dann wird die Methode retainAll() verwendet, um die nicht gemeinsamen Elemente herauszufiltern.
List<Integer> common = new ArrayList<>(listA); common.retainAll(listB); // common now contains only common elements
Verwendung von Stream#filter()
Für diejenigen, die Streams bevorzugen, können Sie die Methode Stream#filter() nutzen. Bei diesem Ansatz wird mithilfe von Collection#contains() überprüft, ob jedes Element aus ListeA in ListeB vorhanden ist. Elemente, die diese Bedingung erfüllen, werden der allgemeinen Liste hinzugefügt.
List<Integer> common = listA.stream().filter(listB::contains).toList(); // common now contains only common elements
Hinweis: Diese Methode bietet zwar Flexibilität, ist jedoch tendenziell langsamer als die anderen Ansätze.
Das obige ist der detaillierte Inhalt vonWie kann ich in Java effizient gemeinsame Elemente zwischen zwei Listen finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!