Java,求两个Set类型的交集
时间: 2024-03-03 18:53:22 浏览: 18
可以使用 Java 中的 Set 类的 retainAll() 方法来求两个 Set 类型的交集,具体代码如下:
```java
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3));
Set<Integer> set2 = new HashSet<>(Arrays.asList(3, 4, 5));
Set<Integer> intersectionSet = new HashSet<>(set1);
intersectionSet.retainAll(set2);
System.out.println(intersectionSet); // 输出 [3]
```
这里我们定义了两个 Set 类型的变量 set1 和 set2,分别存储了元素 {1, 2, 3} 和 {3, 4, 5}。我们首先将 set1 中的元素复制到 intersectionSet 中,然后使用 retainAll() 方法保留 intersectionSet 中与 set2 中相同的元素,从而得到两个 Set 类型的交集。最后输出 intersectionSet 的结果为 [3]。
相关问题
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
求两个集合的交集 java
可以使用 Java 中的 Set 类来实现两个集合的交集。具体步骤如下:
1. 创建两个 Set 对象,分别存储两个集合的元素。
```java
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(3, 4, 5, 6, 7));
```
2. 调用 Set 类中的 retainAll() 方法求两个集合的交集。
```java
set1.retainAll(set2);
```
3. 最终的交集结果将保存在 set1 中。
```java
System.out.println(set1); // 输出 [3, 4, 5]
```
完整代码如下:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(3, 4, 5, 6, 7));
set1.retainAll(set2);
System.out.println(set1); // 输出 [3, 4, 5]
}
}
```