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

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

Susan Sarandon
Freigeben: 2024-12-03 00:16:11
Original
489 Leute haben es durchsucht

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

Gemeinsame Elemente in zwei Listen finden

Das Identifizieren gemeinsamer Elemente zwischen zwei Listen ist eine häufige Anforderung bei der Programmierung. Hier ist eine Anleitung, wie Sie dies mit der Collection-API von Java erreichen können.

Ansatz 1: Verwendung von Collection#retainAll()

Die Methode Collection#retainAll() kann sein Wird verwendet, um eine vorhandene Liste so zu ändern, dass sie nur Elemente enthält, die auch in einer anderen Liste vorhanden sind. Dieser Ansatz ist effizient und prägnant.

List<Integer> listA = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> listB = new ArrayList<>(Arrays.asList(2, 4, 6));

listA.retainAll(listB);
// The resulting listA will now contain only common elements: [2]
Nach dem Login kopieren

Ansatz 2: Erstellen einer neuen Liste mit gemeinsamen Elementen

Um eine Änderung der ursprünglichen Listen zu vermeiden, können Sie eine neue erstellen eine, die nur die gemeinsamen Elemente enthält. Diese Methode ist etwas weniger effizient, bewahrt jedoch die Integrität der ursprünglichen Listen.

List<Integer> listA = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> listB = new ArrayList<>(Arrays.asList(2, 4, 6));

List<Integer> common = new ArrayList<>(listA);
common.retainAll(listB);
// The resulting common list will contain only common elements: [2]
Nach dem Login kopieren

Ansatz 3: Verwendung von Java Streams

Java Streams bieten einen funktionaleren Ansatz für gemeinsame Elemente finden. Durch die Verwendung der Collection#contains()-Methode können Sie nicht-gemeinsame Elemente mit Stream#filter() herausfiltern.

List<Integer> listA = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> listB = new ArrayList<>(Arrays.asList(2, 4, 6));

List<Integer> common = listA.stream().filter(listB::contains).toList();
// The resulting common list will contain only common elements: [2]
Nach dem Login kopieren

Fazit

Diese Ansätze bieten verschiedene Möglichkeiten, gemeinsame Elemente in zwei Listen zu finden. Die Wahl der Methode hängt von spezifischen Anforderungen ab, wie z. B. Leistungsüberlegungen oder der Notwendigkeit, die Originallisten zu ändern.

Das obige ist der detaillierte Inhalt vonWie kann ich gemeinsame Elemente in zwei Java-Listen effizient finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage