java两个数组的交集
时间: 2024-05-02 18:23:33 浏览: 8
您好!您的第一个问题是关于Java中两个数组的交集。您可以使用Java中的Set集合来实现。具体可以先将两个数组转为Set集合,然后使用Set的retainAll方法来获取交集。代码示例如下:
```java
Integer[] arr1 = {1, 2, 3, 4, 5};
Integer[] arr2 = {4, 5, 6, 7, 8};
Set<Integer> set1 = new HashSet<>(Arrays.asList(arr1));
Set<Integer> set2 = new HashSet<>(Arrays.asList(arr2));
set1.retainAll(set2);
System.out.println(set1); // 输出 [4, 5]
```
希望能够帮到您!如果您还有其他问题,欢迎随时向我提出。
相关问题
java两个数组找出交集
可以使用两个嵌套的 for 循环来实现。
具体的实现步骤如下:
1. 首先定义两个数组 array1 和 array2,并初始化它们。
2. 然后定义一个新的数组 result,用来存储两个数组的交集。
3. 使用两个嵌套的 for 循环遍历 array1 和 array2 中的每一个元素,将相同的元素添加到 result 数组中。
4. 最后返回 result 数组即可。
下面是具体的代码实现:
```java
public static int[] getIntersection(int[] array1, int[] array2) {
int[] result = new int[Math.min(array1.length, array2.length)];
int index = 0;
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array2.length; j++) {
if (array1[i] == array2[j]) {
result[index++] = array1[i];
break;
}
}
}
return Arrays.copyOf(result, index);
}
```
在上面的代码中,我们使用了 Arrays.copyOf 方法来截取 result 数组,这是因为 result 数组的长度可能会大于实际的交集元素个数。
Java求两个数组的交集
你好,这是一个关于Java数组求交集的问题。可以使用Java提供的Set集合进行处理。首先将一个数组转化为Set集合,然后遍历另一个数组,在第一个数组的Set集合中查找是否存在相同的元素,如果存在,则添加到结果集合中。
以下是代码示例:
```java
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) {
int[] nums1 = {1,2,2,1};
int[] nums2 = {2,2};
int[] res = intersection(nums1, nums2);
for (int num : res) {
System.out.print(num + " ");
}
}
public static int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set1 = new HashSet<>();
Set<Integer> set2 = new HashSet<>();
// 将数组1转化为Set集合
for(int num : nums1) {
set1.add(num);
}
// 遍历数组2,在数组1的Set集合中查找是否存在相同的元素
for (int num : nums2) {
if (set1.contains(num)) {
set2.add(num);
}
}
// 将结果Set集合转化为数组
int[] res = new int[set2.size()];
int index = 0;
for (int num : set2) {
res[index++] = num;
}
return res;
}
}
```
输出结果为:2 1