複数の配列の交差点を求める方法はJavaで何ですか。
複数の配列の共通部分を求めるには、HashSetを使用できます。具体的な手順は以下の通りです:
- 最初の配列をハッシュセットに変換してください。
- 他の配列を走査し、要素を最初の配列のHashSetに追加します。
- 最終的に、HashSetにはすべての配列の共通部分が含まれます。
以下はサンプルコードです。
import java.util.*;
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> set = new HashSet<>();
for (int num : arr1) {
set.add(num);
}
for (int i = 1; i < 3; i++) {
Set<Integer> tempSet = new HashSet<>();
for (int num : set) {
if (contains(arr2, num) && contains(arr3, num)) {
tempSet.add(num);
}
}
set = tempSet;
}
System.out.println("Intersection of arrays: " + set);
}
public static boolean contains(int[] arr, int num) {
for (int i : arr) {
if (i == num) {
return true;
}
}
return false;
}
}
注意:このコードでは、containsメソッドが使用されており、配列に特定の要素が含まれているかどうかを判断するため、要素がすべての配列に含まれているかを簡単に判断できます。