ホームページ > Java > &#&チュートリアル > Java で 2 つのリスト間で共通要素と異なる要素を効率的に見つけるにはどうすればよいですか?

Java で 2 つのリスト間で共通要素と異なる要素を効率的に見つけるにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-07 04:06:18
オリジナル
732 人が閲覧しました

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

2 つのリスト内の共通要素の検索

このプログラミング シナリオでは、類似要素と異なる要素の両方を識別するとともに、2 つのリスト間の共通要素の数を決定することを目的としています。

これを実現するには、Java のコレクション フレームワーク、具体的には ArrayList クラスまたは HashSet クラスを利用できます。 ArrayList の保持All メソッドは、両方のリストで共有される項目のみを保持し、共通要素の数 (この場合は 3 つ) を提供します。

例:

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);
    }
}
ログイン後にコピー

または、 2 番目のリストに 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 で 2 つのリスト間で共通要素と異なる要素を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート