java Stream求差集
时间: 2024-12-23 22:11:27 浏览: 14
在Java中,Stream API提供了一种方便的方式来处理集合,并可以进行各种数学运算,包括计算两个集合之间的差集(Differences)。差集是指第一个集合中包含但第二个集合不包含的所有元素。你可以使用`filter()`和`distinct()`方法结合`collect()`方法来找到两个流的差集。
以下是计算差集的基本步骤:
1. 创建两个Stream实例,通常是从两个集合转换而来。
2. 使用`stream.filter(e -> !second.stream().contains(e))`过滤掉第一个集合中存在的但在第二个集合中存在的元素。
3. 对过滤后的结果应用`distinct()`方法,去除可能出现的重复项。
4. 最后,使用`collect(Collectors.toList())`将结果收集到一个新的列表中。
示例代码如下:
```java
List<String> firstSet = Arrays.asList("a", "b", "c", "d");
List<String> secondSet = Arrays.asList("b", "c", "e");
List<String> difference = firstSet.stream()
.filter(element -> !secondSet.contains(element))
.distinct()
.collect(Collectors.toList());
System.out.println(difference); // 输出:[a, d]
```
阅读全文