📅  最后修改于: 2023-12-03 15:02:06.564000             🧑  作者: Mango
本文将介绍如何使用 Java 编写程序计算两组的交集。我们将分别介绍两种不同的实现方式。
可以使用 Java 中的 Set 数据结构来存储集合元素,并使用 Set 的 retainAll() 方法计算两个 Set 的交集。下面是具体代码实现:
import java.util.HashSet;
import java.util.Set;
public class IntersectionSet {
public static void main(String[] args) {
Set<Integer> set1 = new HashSet<Integer>();
Set<Integer> set2 = new HashSet<Integer>();
// 添加元素到 Set
set1.add(1);
set1.add(2);
set1.add(3);
set1.add(4);
set2.add(3);
set2.add(4);
set2.add(5);
set2.add(6);
// 计算两个 Set 的交集
set1.retainAll(set2);
// 打印交集结果
System.out.println(set1);
}
}
以上代码将输出 [3, 4],表示两个 Set 的交集为元素 3 和 4。
可以使用 Java 中的数组存储集合元素,并逐个元素对比计算两个数组的交集。下面是具体代码实现:
import java.util.Arrays;
public class IntersectionArray {
public static void main(String[] args) {
Integer[] arr1 = {1, 2, 3, 4};
Integer[] arr2 = {3, 4, 5, 6};
// 计算两个数组的交集
Integer[] intersection = getIntersection(arr1, arr2);
// 打印交集结果
System.out.println(Arrays.toString(intersection));
}
public static Integer[] getIntersection(Integer[] arr1, Integer[] arr2) {
Set<Integer> set = new HashSet<Integer>(Arrays.asList(arr1));
List<Integer> list = new ArrayList<Integer>();
for (Integer i : arr2) {
if (set.contains(i)) {
list.add(i);
}
}
Integer[] intersection = new Integer[list.size()];
intersection = list.toArray(intersection);
return intersection;
}
}
以上代码将输出 [3, 4],表示两个数组的交集为元素 3 和 4。
使用 Set 和数组都可以实现计算两组的交集。使用 Set 更为方便,尤其是当集合元素数量较大时。使用数组需要逐个元素对比,但数组通常可以更好地控制元素的顺序等特性。根据实际需求选择不同的实现方式即可。