複数の配列の共通部分をJavaで取得する方法は何ですか?
Javaでは、コレクションクラスの交差操作を使用して複数の配列の交差を取得することができます。以下は例です:
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class ArrayIntersection {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = {3, 4, 5, 6, 7};
int[] arr3 = {5, 6, 7, 8, 9};
Set<Integer> set1 = new HashSet<>(Arrays.asList(Arrays.stream(arr1).boxed().toArray(Integer[]::new)));
for (int i = 1; i < 3; i++) {
Set<Integer> set2 = new HashSet<>(Arrays.asList(Arrays.stream(arr2).boxed().toArray(Integer[]::new)));
set1.retainAll(set2);
}
System.out.println("交集结果:" + set1);
}
}
上記の例では、一時的な集合オブジェクトを作成するためにHashSetクラスを使用し、Arrays.asList()メソッドを使用して配列を集合に変換し、retainAll()メソッドを使用して2つの集合の共通部分を取得しました。ループ中では、最初に最初の配列と2番目の配列の共通部分を取得し、その結果を3番目の配列との共通部分として取得して、最終的な共通部分の結果を取得しました。
結果は:共通部分の結果:[5]