使用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 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM