Java求两个list 差集
时间: 2024-12-24 07:36:22 浏览: 17
在Java中,如果你想要找出两个List的差集(即在一个列表中存在但在另一个列表中不存在的元素),你可以使用Set集合以及它们的减法操作。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public List<Integer> findDifference(List<Integer> list1, List<Integer> list2) {
HashSet<Integer> set1 = new HashSet<>(list1);
HashSet<Integer> set2 = new HashSet<>(list2);
// 使用set的difference()方法获取差集
set1.removeAll(set2);
// 将结果转换回List并返回
return new ArrayList<>(set1);
}
// 示例
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(4);
list2.add(5);
List<Integer> diffList = findDifference(list1, list2); // diffList将会包含 [1, 3]
```
这个函数首先将每个List转换成HashSet,因为HashSet查找速度更快。然后使用`removeAll()`方法从set1中移除所有在set2中存在的元素,剩下的就是两个List的差集。
阅读全文