Heim >Java >javaLernprogramm >Wie kann ich in Java effizient gemeinsame Elemente zwischen zwei Listen finden?

Wie kann ich in Java effizient gemeinsame Elemente zwischen zwei Listen finden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-08 10:57:16248Durchsuche

How Can I Efficiently Find Common Elements Between Two Lists in Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn