java8 集合的交集、并集、差集

川长思鸟来 2023-03-13 15:22 89阅读 0赞

转载自https://cloud.tencent.com/developer/article/1446248
java8 集合的交集、并集、差集

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.stream.Collectors;
  4. public class ArrayListDemo2 {
  5. public static void main(String[] args) {
  6. List<String> list1 = new ArrayList<String>();
  7. list1.add("1");
  8. list1.add("2");
  9. list1.add("3");
  10. list1.add("5");
  11. list1.add("6");
  12. list1.add("7");
  13. list1.add("8");
  14. List<String> list2 = new ArrayList<String>();
  15. list2.add("2");
  16. list2.add("7");
  17. list2.add("10");
  18. //交集
  19. List<String> collect1 = list1.stream().filter(num -> list2.contains(num))
  20. .collect(Collectors.toList());
  21. System.out.println("交集");
  22. collect1.stream().forEach(System.out::println);
  23. //差集 list1-list2
  24. List<String> collect2 = list1.stream().filter(num -> !list2.contains(num))
  25. .collect(Collectors.toList());
  26. System.out.println("差集list1-list2");
  27. collect2.stream().forEach(System.out::println);
  28. //差集list2-list1
  29. List<String> collect3 = list2.stream().filter(num -> !list1.contains(num))
  30. .collect(Collectors.toList());
  31. System.out.println("差集list2-list1");
  32. collect3.stream().forEach(System.out::println);
  33. //并集 不去重
  34. list1.addAll(list2);
  35. System.out.println("并集 不去重");
  36. list1.stream().forEach(System.out::println);
  37. //并集 去重
  38. List<String> collect4 = list1.stream().distinct().collect(Collectors.toList());
  39. System.out.println("并集 去重");
  40. collect4.stream().forEach(System.out::println);
  41. }
  42. }

打印出来的结果是

  1. 交集
  2. 2
  3. 7
  4. 差集list1-list2
  5. 1
  6. 3
  7. 5
  8. 6
  9. 8
  10. 差集list2-list1
  11. 10
  12. 并集 不去重
  13. 1
  14. 2
  15. 3
  16. 5
  17. 6
  18. 7
  19. 8
  20. 2
  21. 7
  22. 10
  23. 并集 去重
  24. 1
  25. 2
  26. 3
  27. 5
  28. 6
  29. 7
  30. 8
  31. 10

发表评论

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

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

相关阅读