参考博客: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 }