首頁 >Java >java教程 >如何在 Java 中有效率地尋找兩個清單之間的共同元素和不同元素?

如何在 Java 中有效率地尋找兩個清單之間的共同元素和不同元素?

Linda Hamilton
Linda Hamilton原創
2024-12-07 04:06:18747瀏覽

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

找出兩個清單中的共同元素

在此程式場景中,我們的目標是確定兩個清單之間共同元素的數量,同時辨識相似和不同的元素

要實現這一目標,可以利用Java 的集合框架,特別是ArrayList 或HashSet 類別。 ArrayList 中的 keepAll 方法僅保留兩個清單共享的項目,提供公共元素的計數(本例為三個)。

例如:

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

或者,對第二個列表使用HashSet 可以進行更有效的比較:

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

此版本識別常見值和不同值,處理重複值有效。

以上是如何在 Java 中有效率地尋找兩個清單之間的共同元素和不同元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn