java 多个list集合取交集
时间: 2024-10-22 16:09:36 浏览: 26
在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`是一个泛型,你需要指定具体的类型。如果你想获取的是所有列表的共同元素,只需遍历一次即可。
阅读全文