首頁 > Java > java教程 > 如何在Java中高效地比較兩個列表並找到共同和獨特的元素?

如何在Java中高效地比較兩個列表並找到共同和獨特的元素?

DDD
發布: 2024-11-28 14:17:11
原創
833 人瀏覽過

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

比較 Java 中的兩個清單

您想要比較兩組資料以確定它們共享多少個元素。假設這些不是 Java List 對象,請考慮以下方法:

使用 ArrayList

利用 ArrayList,您可以使用 keepAll 方法。此方法僅保留第一個清單中也存在於第二個清單中的元素。例如:

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);
    }
}
登入後複製

此程式碼將列印 listOne 和 listTwo 之間公共元素的清單。

使用 HashSet

如果你想要包含重複值(即在任一列表中多次出現的元素),您可以使用 HashSet 而不是陣列列表。 HashSet不允許重複,因此比較後,可以使用removeAll方法從兩個清單中的元素組合集中刪除公共元素。這將為您提供一個獨特的非常見元素清單:

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);
    }
}
登入後複製

此修改後的程式碼將輸出兩個清單之間相似和不同的元素。

以上是如何在Java中高效地比較兩個列表並找到共同和獨特的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板