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

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

Linda Hamilton
Freigeben: 2024-12-07 04:06:18
Original
750 Leute haben es durchsucht

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

Gemeinsame Elemente in zwei Listen finden

In diesem Programmierszenario wollen wir die Anzahl gemeinsamer Elemente zwischen zwei Listen bestimmen und sowohl ähnliche als auch unterschiedliche Elemente identifizieren Werte.

Um dies zu erreichen, kann man das Sammlungsframework von Java und insbesondere die Klassen ArrayList oder HashSet verwenden. Die retainAll-Methode in ArrayList behält nur die Elemente bei, die von beiden Listen gemeinsam genutzt werden, und liefert eine Anzahl der gemeinsamen Elemente (in diesem Fall drei).

Zum Beispiel:

import java.util.ArrayList;
import java.util.Arrays;

public class CompareLists {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>(Arrays.asList("milan", "dingo", "iga", "elpha", "hafil", "meat", "iga", "milan", "elpha", "meat", "iga"));
        ArrayList<String> list2 = new ArrayList<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo", "dingo", "dingo"));

        list1.retainAll(list2);
        System.out.println(list1);
    }
}
Nach dem Login kopieren

Alternativ: Die Verwendung von HashSet für die zweite Liste ermöglicht einen effizienteren Vergleich:

import java.util.HashSet;
import java.util.Arrays;

public class CompareLists {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>(Arrays.asList("milan", "dingo", "iga", "elpha", "hafil", "meat", "iga", "milan", "elpha", "meat", "iga"));
        HashSet<String> list2 = new HashSet<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo", "dingo", "dingo"));

        Set<String> common = new HashSet<>(list1);
        common.retainAll(list2);

        Set<String> unique = new HashSet<>(list1);
        unique.addAll(list2);
        unique.removeAll(common);

        System.out.println("Common: " + common);
        System.out.println("Distinct: " + unique);
    }
}
Nach dem Login kopieren

Diese Version identifiziert sowohl gemeinsame als auch unterschiedliche Werte und verarbeitet wiederholte Werte effektiv.

Das obige ist der detaillierte Inhalt vonWie kann ich in Java effizient gemeinsame und unterschiedliche Elemente zwischen zwei Listen 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