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

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

DDD
リリース: 2024-12-01 01:09:15
オリジナル
597 人が閲覧しました

How Can I Efficiently Compare Two Lists in Java to Find Both Common and Different Elements?

Java での 2 つのリストの比較

Java では、さまざまなメソッドとデータ構造を通じて 2 つのリストを比較できます。この記事では、類似した要素と異なる要素の両方を見つけることに焦点を当てて、リストを比較するためのいくつかのアプローチを検討します。

ArrayList とtainAll メソッド

ArrayList とtainAll メソッドを使用すると、次のことが可能になります。両方のリストに含まれる要素のみを保持します。

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

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

        list1.retainAll(list2);
        System.out.println("Common elements: " + list1);
    }
}
ログイン後にコピー

HashSet andremoveAll メソッド

共通の要素だけでなく異なる要素も検索する必要がある場合は、HashSet と RemoveAll メソッドを使用するのが適切な方法です。 HashSet では重複が許可されないため、値の繰り返しを排除できます。

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

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

        Collection<String> common = new HashSet<>(list1);
        Collection<String> different = new HashSet<>();
        different.addAll(list1);
        different.addAll(list2);

        common.retainAll(list2);
        different.removeAll(common);

        System.out.printf("Common elements: %s%nDifferent elements: %s%n", common, different);
    }
}
ログイン後にコピー

カスタム アプローチ

または、リストとデータを比較するカスタム メソッドを作成することもできます。共通の要素と異なる要素を返します。これにより、より柔軟なカスタマイズ オプションが提供されます。

public class CustomListComparison {
    public static void main(String[] args) {
        List<String> list1 = Arrays.asList("milan", "dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta");
        List<String> list2 = Arrays.asList("hafil", "iga", "binga", "mike", "dingo");

        List<String> common = new ArrayList<>();
        List<String> different = new ArrayList<>();

        for (String element : list1) {
            if (list2.contains(element)) {
                common.add(element);
            } else {
                different.add(element);
            }
        }

        for (String element : list2) {
            if (!list1.contains(element)) {
                different.add(element);
            }
        }

        System.out.printf("Common elements: %s%nDifferent elements: %s%n", common, different);
    }
}
ログイン後にコピー

これらのテクニックを活用することで、Java で 2 つのリストを効率的に比較し、共通の要素と異なる要素の両方を識別できます

以上がJava で 2 つのリストを効率的に比較して、共通要素と異なる要素の両方を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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