Java,求两个Set类型的交集
时间: 2024-03-03 14:53:22 浏览: 67
可以使用 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中两个set取交集
可以使用retainAll方法来获取两个Set的交集,例如:
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3));
Set<Integer> set2 = new HashSet<>(Arrays.asList(2, 3, 4));
set1.retainAll(set2);
System.out.println(set1); // 输出 [2, 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
阅读全文