java集合取交集结果
时间: 2023-10-14 12:09:46 浏览: 91
在Java中,可以使用Set集合的retainAll()方法来取两个集合的交集。具体做法如下:
```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));
set1.retainAll(set2);
System.out.println(set1); // 输出 [3, 4, 5]
```
以上代码创建了两个Set集合,分别包含整数1到5和整数3到7,然后使用retainAll()方法取它们的交集并输出结果。注意,retainAll()方法会修改原来的集合,因此在使用前需要确保原来的集合不再需要使用。
相关问题
java中set集合取交集
Java中的Set集合可以使用retainAll()方法来取两个集合的交集,示例代码如下:
```java
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3));
Set<Integer> set2 = new HashSet<>(Arrays.asList(3, 4, 5));
Set<Integer> set3 = new HashSet<>(set1);
set3.retainAll(set2);
System.out.println(set3); // 输出 [3]
```
上面的代码中,我们将set1复制一份,然后使用retainAll()方法将set3中不包含set2中的元素删除,这样就得到了set1和set2的交集set3。
需要注意的是,Set集合会去除重复的元素,因此结果中不会出现重复元素。如果两个集合没有交集,那么retainAll()方法会将第一个集合清空。
java 多个list集合取交集
在Java中,如果你有多个List集合需要取交集,你可以使用Set数据结构来实现这个操作。Set不允许有重复元素,所以可以先将所有的List转换为Set,然后用HashSet的`addAll()`方法合并所有Set,最后再将结果转换回List,得到的就是交集部分。以下是简单的步骤:
```java
import java.util.*;
public List<T> getIntersection(List<T> list1, List<T> list2, ...) {
// Step 1: 将每个列表转换为Set
Set<T> set1 = new HashSet<>(list1);
Set<T> set2 = new HashSet<>(list2);
// Step 2: 合并所有Set
for (int i = 3; i < args.length; i++) {
set1.addAll(new HashSet<>(args[i]));
}
// Step 3: 获取交集(只保留唯一的元素)
set1.retainAll(set2); // 因为set1包含了所有列表,所以只需对set1求交集
// Step 4: 转换回List
List<T> intersection = new ArrayList<>(set1);
return intersection;
}
```
在这个例子中,`T`是一个泛型,你需要指定具体的类型。如果你想获取的是所有列表的共同元素,只需遍历一次即可。
阅读全文