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

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

Linda Hamilton
リリース: 2024-12-03 01:05:13
オリジナル
596 人が閲覧しました

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

Java 2 つのリストの比較

2 つのリストを比較して共有要素の数を決定し、類似した項目と異なる項目の両方を識別するには、次を使用します。 Java Collections.

共有要素を効率的に決定するには、retainAll メソッドの使用を検討してください。このメソッドは、最初のリストを変更して、両方のリストに存在する要素。たとえば、2 つのリスト「milan」と「hafil」がある場合、retainAll 操作は 1 つのリストを「milan」のみを含むように変更します。

類似した要素と異なる要素の両方を取得するには、Set を利用できます。 RemoveAll メソッドを使用すると、リスト間で共有されていない要素を Set から除外できます。結果の Set には類似した要素が含まれますが、異なる要素は両方のリストの和集合を計算し、その後類似した要素を除外することで取得できます。

比較のために Set を使用したサンプル コード スニペットを次に示します。

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

class Repeated {
    public static void main(String[] args) {
        Collection<String> listOne = Arrays.asList("milan", "iga", "dingo", "elpha", "hafil", "meat", "neeta.peeta");
        Collection<String> listTwo = Arrays.asList("hafil", "iga", "binga", "mike", "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);
    }
}
ログイン後にコピー

出力:

One:[milan, iga, dingo, elpha, hafil, meat, neeta.peeta]
Two:[hafil, iga, binga, mike, dingo]
Similar:[dingo, iga, hafil]
Different:[mike, binga, milan, meat, elpha, neeta.peeta]
ログイン後にコピー

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

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