1、测试代码
package com.example.demo;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author LH
* @date 2020-04-28 18:11
*/
public class Java8Test extends DemoApplicationTests {
@Test
public void CollectionTest() {
List<String> list1 = new ArrayList<>();
list1.add("张杰");
list1.add("萧敬腾");
list1.add("金玟岐");
list1.add("邓紫棋");
list1.add("迈克尔杰克逊");
List<String> list2 = new ArrayList<>();
list2.add("张杰");
list2.add("唐僧");
list2.add("孙悟空");
list2.add("猪八戒");
list2.add("沙僧");
System.out.println("-- 交集(list1 n list2)...start");
List<String> intersectList = list1.stream().filter(o -> list2.contains(o)).collect(Collectors.toList());
intersectList.forEach(o -> System.out.println(o));
System.out.println();
System.out.println("-- 差集(list1 - list2)...start");
List<String> reduce1 = list1.stream().filter(o -> !list2.contains(o)).collect(Collectors.toList());
reduce1.forEach(o -> System.out.println(o));
System.out.println();
System.out.println("-- 差集(list2 - list1)...start");
List<String> reduce2 = list2.stream().filter(o -> !list1.contains(o)).collect(Collectors.toList());
reduce2.parallelStream().forEach(System.out::println);
System.out.println();
System.out.println("-- 并集(list1 U list2)...start");
List<String> listTemp1 = list1.parallelStream().collect(Collectors.toList());
List<String> listTemp2 = list2.parallelStream().collect(Collectors.toList());
listTemp1.addAll(listTemp2);
listTemp1.parallelStream().forEach(System.out::println);
System.out.println();
System.out.println("-- 去重并集(list1 U list2)...start");
List<String> listAllDistinct = listTemp1.stream().distinct().collect(Collectors.toList());
listAllDistinct.parallelStream().forEach(System.out::println);
System.out.println();
System.out.println(list1);
System.out.println(list2);
}
}
2、测试结果打印
-- 交集(list1 n list2)...start
张杰
-- 差集(list1 - list2)...start
萧敬腾
金玟岐
邓紫棋
迈克尔杰克逊
-- 差集(list2 - list1)...start
猪八戒
沙僧
唐僧
孙悟空
-- 并集(list1 U list2)...start
唐僧
张杰
金玟岐
萧敬腾
孙悟空
张杰
沙僧
邓紫棋
猪八戒
迈克尔杰克逊
-- 去重并集(list1 U list2)...start
金玟岐
唐僧
萧敬腾
张杰
邓紫棋
沙僧
孙悟空
迈克尔杰克逊
猪八戒
[张杰, 萧敬腾, 金玟岐, 邓紫棋, 迈克尔杰克逊]
[张杰, 唐僧, 孙悟空, 猪八戒, 沙僧]