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

Wie kann ich zwei Listen in Java effizient vergleichen und gemeinsame und eindeutige Elemente finden?

DDD
DDDOriginal
2024-11-28 14:17:11774Durchsuche

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

Vergleich zweier Listen in Java

Sie haben zwei Datensätze, die Sie vergleichen möchten, um festzustellen, wie viele Elemente sie gemeinsam haben. Unter der Annahme, dass es sich nicht um Java List-Objekte handelt, sollten Sie den folgenden Ansatz in Betracht ziehen:

Verwenden von ArrayList

Mit ArrayList können Sie die Methode retainAll verwenden. Diese Methode behält nur Elemente in der ersten Liste bei, die auch in der zweiten Liste vorhanden sind. Zum Beispiel:

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

public class ListComparison {
    public static void main(String[] args) {
        Collection<String> listOne = new ArrayList<>(Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta"));
        Collection<String> listTwo = new ArrayList<>(Arrays.asList("hafil", "iga", "binga", "mike", "dingo"));

        listOne.retainAll(listTwo);
        System.out.println(listOne);
    }
}

Dieser Code druckt eine Liste der gemeinsamen Elemente zwischen listOne und listTwo.

Verwenden von HashSet

Wenn Sie möchten Um die wiederholten Werte einzuschließen (d. h. Elemente, die in beiden Listen mehrmals vorkommen), können Sie ein HashSet anstelle von ArrayList verwenden. Da HashSet keine Duplikate zulässt, können Sie nach dem Vergleich die Methode „removeAll“ verwenden, um gemeinsame Elemente aus dem kombinierten Satz von Elementen in beiden Listen zu entfernen. Dadurch erhalten Sie eine Liste eindeutiger, nicht gemeinsamer Elemente:

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

public class ListComparison {
    public static void main(String[] args) {

        Collection<String> listOne = Arrays.asList("milan", "iga",
                "dingo", "iga",
                "elpha", "iga",
                "hafil", "iga",
                "meat", "iga",
                "neeta.peeta", "iga");

        Collection<String> listTwo = Arrays.asList("hafil",
                "iga",
                "binga",
                "mike",
                "dingo", "dingo", "dingo");

        Collection<String> similar = new HashSet<>(listOne);
        Collection<String> different = new HashSet<>();
        different.addAll(listOne);
        different.addAll(listTwo);

        similar.retainAll(listTwo);
        different.removeAll(similar);

        System.out.printf("One:%s%nTwo:%s%nSimilar:%s%nDifferent:%s%n", listOne, listTwo, similar, different);
    }
}

Dieser modifizierte Code gibt die ähnlichen und unterschiedlichen Elemente zwischen den beiden Listen aus.

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