【Java-List】Java两个List集合取交集、并集、差集

た 入场券 2023-10-09 21:22 145阅读 0赞
  1. public void test(){
  2. List<String> list1 = new ArrayList<String>();
  3. list1.add("a");
  4. list1.add("b");
  5. list1.add("c");
  6. list1.add("d");
  7. list1.add("e");
  8. List<String> list2 = new ArrayList<String>();
  9. list2.add("c");
  10. list2.add("d");
  11. list2.add("e");
  12. list2.add("f");
  13. list2.add("g");
  14. // 交集
  15. List<String> intersection = list1.stream().filter(item -> list2.contains(item)).collect(toList());
  16. System.out.println("---交集---");
  17. intersection.parallelStream().forEach(System.out::println);
  18. // 差集 (list1 - list2)
  19. List<String> reduce1 = list1.stream().filter(item -> !list2.contains(item)).collect(toList());
  20. System.out.println("---差集(list1 - list2)---");
  21. reduce1.parallelStream().forEach(System.out::println);
  22. // 并集
  23. List<String> listAll = list1.parallelStream().collect(toList());
  24. List<String> listAll2 = list2.parallelStream().collect(toList());
  25. listAll.addAll(listAll2);
  26. System.out.println("---并集---");
  27. listAll.parallelStream().forEachOrdered(System.out::println);
  28. // 去重并集
  29. List<String> listAllDistinct = listAll.stream().distinct().collect(toList());
  30. System.out.println("---得到去重并集---");
  31. listAllDistinct.parallelStream().forEachOrdered(System.out::println);
  32. }

发表评论

表情:
评论列表 (有 0 条评论,145人围观)

还没有评论,来说两句吧...

相关阅读