使用java 的api获取两个集合的交集、并集、差集

参考博客:https://blog.csdn.net/shenhonglei1234/article/details/52063399

注意在获取并集的时候,List和Set会有不同,List不会自动去重,而Set会去重

  1 package com.lonely.映射;
  2 
  3 import java.util.ArrayList;
  4 import java.util.HashSet;
  5 import java.util.List;
  6 import java.util.Set;
  7 
  8 /**
  9  * @author ztkj-hzb
 10  * @Date 2019/7/18 10:55
 11  * @Description
 12  */
 13 public class Test {
 14 
 15     public static void main(String[] args) {
 16 
 17         removeAllTest();
 18 
 19     }
 20 
 21 
 22     /**
 23      * 两个集合去交集
 24      */
 25     public static void retianAllTest() {
 26         List<Integer> list1 = new ArrayList<Integer>() {{
 27             this.add(1);
 28             this.add(2);
 29             this.add(3);
 30         }};
 31 
 32         List<Integer> list2 = new ArrayList<Integer>() {{
 33             this.add(2);
 34             this.add(3);
 35             this.add(4);
 36         }};
 37 
 38         //取交集
 39         list1.retainAll(list2);
 40 
 41         list1.forEach(System.out::println);
 42         System.out.println("-----------------------");
 43         list2.forEach(System.out::println);
 44     }
 45 
 46 
 47     /**
 48      * 测试并集  注意区分 List的addAll是不去重的。  而Set的addAll会去重
 49      */
 50     public static void addAllTest() {
 51         List<Integer> list1 = new ArrayList<Integer>() {{
 52             this.add(1);
 53             this.add(2);
 54             this.add(3);
 55         }};
 56 
 57         List<Integer> list2 = new ArrayList<Integer>() {{
 58             this.add(2);
 59             this.add(3);
 60             this.add(4);
 61         }};
 62 
 63         //取并集
 64         list1.addAll(list2);
 65 
 66         list1.forEach(System.out::println);
 67         System.out.println("-----------------------");
 68         list2.forEach(System.out::println);
 69 
 70         System.out.println("**********************************");
 71 
 72 
 73         Set<Integer> list3 = new HashSet<Integer>() {{
 74             this.add(1);
 75             this.add(2);
 76             this.add(3);
 77         }};
 78 
 79         Set<Integer> list4 = new HashSet<Integer>() {{
 80             this.add(2);
 81             this.add(3);
 82             this.add(4);
 83         }};
 84 
 85         //取并集
 86         list3.addAll(list4);
 87 
 88         list3.forEach(System.out::println);
 89         System.out.println("-----------------------");
 90         list4.forEach(System.out::println);
 91     }
 92 
 93     /**
 94      * 取差集
 95      */
 96     public static void removeAllTest() {
 97         List<Integer> list1 = new ArrayList<Integer>() {{
 98             this.add(1);
 99             this.add(2);
100             this.add(3);
101         }};
102 
103         List<Integer> list2 = new ArrayList<Integer>() {{
104             this.add(2);
105             this.add(3);
106             this.add(4);
107         }};
108 
109         //取并集
110         list1.removeAll(list2);
111 
112         list1.forEach(System.out::println);
113         System.out.println("-----------------------");
114         list2.forEach(System.out::println);
115     }
116 
117 
118 }

猜你喜欢

转载自www.cnblogs.com/duguxiaobiao/p/12091689.html