stream流筛选两个list的重复项
时间: 2023-07-08 18:26:45 浏览: 107
快速筛选重复数字或字符
3星 · 编辑精心推荐
可以使用Java 8的Stream API,先将两个列表合并,然后使用distinct()和filter()方法进行筛选。具体的代码如下:
```java
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> result = Stream.concat(list1.stream(), list2.stream())
.distinct()
.filter(i -> list1.contains(i) && list2.contains(i))
.collect(Collectors.toList());
System.out.println(result); // 输出 [3, 4, 5]
```
上面的代码将两个列表合并成一个,然后使用distinct()方法去重,最后使用filter()方法筛选出同时在两个列表中出现的元素。最后将筛选出的元素收集到一个新的列表中,并输出结果。
阅读全文