您的当前位置:首页正文

java8两个List集合取交集、并集、差集、去重并集

2020-07-05 来源:步旅网
java8两个List集合取交集、并集、差集、去重并集

import java.util.ArrayList;import java.util.List;

import static java.util.stream.Collectors.toList;

public class Test {

public static void main(String[] args) {

List list1 = new ArrayList(); list1.add(\"1\"); list1.add(\"2\"); list1.add(\"3\"); list1.add(\"5\"); list1.add(\"6\");

List list2 = new ArrayList(); list2.add(\"2\"); list2.add(\"3\"); list2.add(\"7\"); list2.add(\"8\");

// 交集

List intersection = list1.stream().filter(item -> list2.contains(item)).collect(toList()); System.out.println(\"---交集 intersection---\");

intersection.parallelStream().forEach(System.out :: println);

// 差集 (list1 - list2)

List reduce1 = list1.stream().filter(item -> !list2.contains(item)).collect(toList()); System.out.println(\"---差集 reduce1 (list1 - list2)---\"); reduce1.parallelStream().forEach(System.out :: println);

// 差集 (list2 - list1)

List reduce2 = list2.stream().filter(item -> !list1.contains(item)).collect(toList()); System.out.println(\"---差集 reduce2 (list2 - list1)---\"); reduce2.parallelStream().forEach(System.out :: println);

// 并集

List listAll = list1.parallelStream().collect(toList()); List listAll2 = list2.parallelStream().collect(toList()); listAll.addAll(listAll2);

System.out.println(\"---并集 listAll---\");

listAll.parallelStream().forEachOrdered(System.out :: println);

// 去重并集

List listAllDistinct = listAll.stream().distinct().collect(toList()); System.out.println(\"---得到去重并集 listAllDistinct---\");

listAllDistinct.parallelStream().forEachOrdered(System.out :: println);

System.out.println(\"---原来的List1---\");

list1.parallelStream().forEachOrdered(System.out :: println); System.out.println(\"---原来的List2---\");

list2.parallelStream().forEachOrdered(System.out :: println); }}

原⽂:

因篇幅问题不能全部显示,请点此查看更多更全内容