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
Linda HamiltonOriginal
2024-12-07 04:06:18749Durchsuche

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);
    }
}

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);
    }
}

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!

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