Java实现数组交集
1. 流程图
st=>start: 开始
op1=>operation: 创建两个整数数组
op2=>operation: 数组去重
op3=>operation: 遍历数组1
op4=>operation: 遍历数组2
op5=>operation: 判断数组1的元素是否存在于数组2中
op6=>operation: 将相同的元素添加到结果集合中
op7=>operation: 将结果集合转换为数组
e=>end: 结束
st->op1->op2->op3->op4->op5->op6->op7->e
2. 介绍
在 Java 中,如果要求两个数组的交集,可以使用以下步骤进行实现:
- 创建两个整数数组;
- 去重,即将数组中的重复元素去除;
- 遍历数组1的每个元素;
- 遍历数组2的每个元素,并判断是否与数组1的元素相同;
- 如果相同,则将该元素添加到一个结果集合中;
- 将结果集合转换为数组。
下面将详细介绍每一步的实现方法和相应的代码。
3. 代码实现
步骤1:创建两个整数数组
首先,我们需要创建两个整数数组,用于存储待比较的数据。可以使用以下代码创建两个数组:
int[] array1 = {1, 2, 3, 4, 5};
int[] array2 = {4, 5, 6, 7, 8};
步骤2:数组去重
在进行数组交集操作之前,我们需要将数组中的重复元素去除,以确保结果的准确性。可以使用以下代码对数组进行去重操作:
Set<Integer> set1 = new HashSet<>();
for (int num : array1) {
set1.add(num);
}
Set<Integer> set2 = new HashSet<>();
for (int num : array2) {
set2.add(num);
}
步骤3:遍历数组1
接下来,我们需要遍历数组1的每个元素。可以使用以下代码实现:
for (int num : set1) {
// 在此处添加代码
}
步骤4:遍历数组2
在数组1的每个元素上,我们需要遍历数组2的每个元素,并判断是否与数组1的元素相同。可以使用以下代码实现:
for (int num : set2) {
// 在此处添加代码
}
步骤5:判断数组1的元素是否存在于数组2中
在遍历数组2的每个元素时,我们需要判断该元素是否与数组1的元素相同。可以使用以下代码实现:
if (set1.contains(num)) {
// 在此处添加代码
}
步骤6:将相同的元素添加到结果集合中
如果数组1的元素存在于数组2中,则将该元素添加到一个结果集合中。可以使用以下代码实现:
result.add(num);
步骤7:将结果集合转换为数组
最后,将结果集合转换为数组,以便返回结果。可以使用以下代码实现:
int[] intersection = result.stream().mapToInt(Integer::intValue).toArray();
4. 完整代码示例
下面是整个过程的完整代码示例:
import java.util.*;
public class ArrayIntersection {
public static void main(String[] args) {
int[] array1 = {1, 2, 3, 4, 5};
int[] array2 = {4, 5, 6, 7, 8};
Set<Integer> set1 = new HashSet<>();
for (int num : array1) {
set1.add(num);
}
Set<Integer> set2 = new HashSet<>();
for (int num : array2) {
set2.add(num);
}
List<Integer> result = new ArrayList<>();
for (int num : set1) {
if (set2.contains(num)) {
result.add(num);
}
}
int[] intersection = result.stream().mapToInt(Integer::intValue).toArray();
System.out.println("数组1:" + Arrays.toString(array1));
System.out.println("数组2:" + Arrays.toString(array2));
System.out
















