已知两个集合 List<Integer> list1 = new ArrayList<Integer>(); list1.add(1); list1.add(2); list1.add(3); List<Integer> list2 = new ArrayList<Integer>(); list2.add(2); list2.add(3); list2.add(4); 请通过代码输出 两个集合的交集、并集 list1对list2的补集 尽量少用for循环,
时间: 2024-04-21 09:22:17 浏览: 216
可以使用Java 8的Stream API来实现这个功能,而不使用for循环。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(3);
list2.add(4);
// 两个集合的交集
List<Integer> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
System.out.println("交集:" + intersection);
// 两个集合的并集
List<Integer> union = Stream.concat(list1.stream(), list2.stream())
.distinct()
.collect(Collectors.toList());
System.out.println("并集:" + union);
// list1对list2的补集
List<Integer> complement = list1.stream()
.filter(i -> !list2.contains(i))
.collect(Collectors.toList());
System.out.println("补集:" + complement);
}
}
```
输出结果为:
```
交集:[2, 3]
并集:[1, 2, 3, 4]
补集:[1]
```
这个示例代码使用了Stream API中的一些方法,例如`filter()`、`collect()`、`concat()`和`distinct()`来实现交集、并集和补集的计算。
阅读全文