两个集合是List<String>
时间: 2024-03-13 13:24:06 浏览: 72
List转换成String数组
4星 · 用户满意度95%
如果两个集合都是 `List<String>` 类型的,同样可以使用 Java8 的 Stream API 来求它们的交集和差集。
1. 求交集
```java
List<String> listA = Arrays.asList("apple", "banana", "orange");
List<String> listB = Arrays.asList("banana", "orange", "pear");
List<String> intersection = listA.stream()
.filter(listB::contains)
.collect(Collectors.toList());
// 输出:[banana, orange]
System.out.println(intersection);
```
2. 求差集
```java
List<String> listA = Arrays.asList("apple", "banana", "orange");
List<String> listB = Arrays.asList("banana", "orange", "pear");
List<String> difference = Stream.concat(listA.stream(), listB.stream())
.filter(e -> !listA.contains(e) || !listB.contains(e))
.collect(Collectors.toList());
// 输出:[apple, pear]
System.out.println(difference);
```
注意,这里的差集是指 `listA` 和 `listB` 的不重复元素的集合,并不是 `listA` 相对于 `listB` 的差集。如果需要求相对差集,可以使用 `listA.removeAll(listB)` 或 `listB.removeAll(listA)` 方法。
阅读全文