Java8-两个集合去重

﹏ヽ暗。殇╰゛Y 2024-04-08 11:20 152阅读 0赞

4daa2044cfa7449099c97565204e708c.png

  1. public class CollectionsTest {
  2. public static void main(String[] args) {
  3. List<String> list1 = new ArrayList<>();
  4. list1.add("1");
  5. list1.add("2");
  6. list1.add("3");
  7. list1.add("4");
  8. list1.add("5");
  9. List<String> list2 = new ArrayList<>();
  10. list2.add("2");
  11. list2.add("3");
  12. list2.add("6");
  13. list2.add("7");
  14. // 交集
  15. List<String> intersection = list1.stream().filter(item -> list2.contains(item)).collect(toList());
  16. System.out.println("---交集 intersection---");
  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("---差集 reduce1 (list1 - list2)---");
  21. reduce1.parallelStream().forEach(System.out::println);
  22. // 差集 (list2 - list1)
  23. List<String> reduce2 = list2.stream().filter(item -> !list1.contains(item)).collect(toList());
  24. System.out.println("---差集 reduce2 (list2 - list1)---");
  25. reduce2.parallelStream().forEach(System.out::println);
  26. // 并集
  27. List<String> listAll = list1.parallelStream().collect(toList());
  28. List<String> listAll2 = list2.parallelStream().collect(toList());
  29. listAll.addAll(listAll2);
  30. System.out.println("---并集 listAll---");
  31. listAll.parallelStream().forEachOrdered(System.out::println);
  32. // 去重并集
  33. List<String> listAllDistinct = listAll.stream().distinct().collect(toList());
  34. System.out.println("---得到去重并集 listAllDistinct---");
  35. listAllDistinct.parallelStream().forEachOrdered(System.out::println);
  36. }
  37. }

发表评论

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

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

相关阅读