Javaでの集合の共通部分の取得方法


  1. retainAllメソッドを使用する方法: JavaのSetインターフェースには、retainAllメソッドが用意されており、2つの集合の共通部分を取得することができます。以下は使用例です。
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8));
set1.retainAll(set2);
System.out.println("共通部分の要素: " + set1);

このコードでは、set1とset2の共通部分を取得しています。実行結果は、[4, 5]となります。

  1. Stream APIを使用する方法: Java 8以降では、Stream APIを使用して集合の操作を行うことができます。以下はStream APIを使用して集合の共通部分を取得するコード例です。
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8));
Set<Integer> intersection = set1.stream()
        .filter(set2::contains)
        .collect(Collectors.toSet());
System.out.println("共通部分の要素: " + intersection);

このコードでは、set1とset2の共通部分をStream APIを使用して取得しています。実行結果は、[4, 5]となります。

  1. Apache Commons Collectionsを使用する方法: Apache Commons Collectionsライブラリを使用すると、Javaのコレクション操作をより便利に行うことができます。以下はApache Commons Collectionsを使用して集合の共通部分を取得するコード例です。
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8));
Set<Integer> intersection = CollectionUtils.intersection(set1, set2);
System.out.println("共通部分の要素: " + intersection);

このコードでは、set1とset2の共通部分をApache Commons Collectionsを使用して取得しています。実行結果は、[4, 5]となります。

以上がJavaで集合の共通部分を取得する方法のいくつかです。どの方法を選んでも同じ結果が得られますので、自分のプロジェクトの要件や好みに合わせて選択してください。