两个集合取交集、并集、差集

1. 准备数据:

        List list1 = new ArrayList();
        list1.add("1");
        list1.add("2");
        list1.add("3");
        list1.add("5");
        list1.add("6");
        System.out.println("---- list1 ----");
        System.out.println(list1);

        List list2 = new ArrayList();
        list2.add("2");
        list2.add("3");
        list2.add("7");
        list2.add("8");
        System.out.println("---- list2 ----");
        System.out.println(list2);

2. 交集:

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

3. 差集 (list1 - list2):

        List reduce = list1.stream().filter(item -> !list2.contains(item)).collect(Collectors.toList());
        System.out.println("---- 差集(list1 - list2)----");
        System.out.println(reduce);

4. 并集:

        List listAll = list1.parallelStream().collect(Collectors.toList());
        listAll.addAll(list2);
        System.out.println("---- 并集 ----");
        System.out.println(listAll);

5. 去重并集:

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

你可能感兴趣的:(java)