案例:
public static void main(String[]args){
List<String> list1 = new ArrayList<String>();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list1.add("5");
List<String> list2 = new ArrayList<String>();
list2.add("2");
list2.add("5");
list2.add("6");
//交集
List<String> collect1 = list1.stream().filter(it -> list2.contains(it))
.collect(Collectors.toList());
System.out.println("交集");
collect1.stream().forEach(System.out::println);
//差集 list1-list2
List<String> collect2 = list1.stream().filter(it -> !list2.contains(it))
.collect(Collectors.toList());
System.out.println("差集list1-list2");
collect2.stream().forEach(System.out::println);
//差集list2-list1
List<String> collect3 = list2.stream().filter(it -> !list1.contains(it))
.collect(Collectors.toList());
System.out.println("差集list2-list1");
collect3.stream().forEach(System.out::println);
//并集 不去重
list1.addAll(list2);
System.out.println("并集 不去重");
list1.stream().forEach(System.out::println);
//并集 去重
List<String> collect4 = list1.stream().distinct().collect(Collectors.toList());
System.out.println("并集 去重");
collect4.stream().forEach(System.out::println);
}
输出结果如下:
交集
2
5
差集list1-list2
1
3
4
差集list2-list1
6
并集 不去重
1
2
3
4
5
2
5
6
并集 去重
1
2
3
4
5
6