Java中多个集合的交集,并集和差集

2018-06-18 00:39:20来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

一、交集

  java中交集使用 A.retainAll(B) ,交集的结果在集合A中。

 1 import org.junit.Test;
 2 
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 
 6 /**
 7  * 交集
 8  *
 9  * @author zhongtao on 2018/5/30
10  */
11 public class Intersection {
12     /**
13      * 测试简单交集
14      */
15     @Test
16     public void testSet() {
17         Set<String> set1 = new HashSet<>();
18         Set<String> set2 = new HashSet<>();
19 
20         set1.add("a");
21         set1.add("b");
22         set1.add("c");
23 
24         set2.add("c");
25         set2.add("d");
26         set2.add("e");
27 
28         //交集
29         set1.retainAll(set2);
30         System.out.println("交集是 " + set1);  //交集是 [c]
31     }
32 }

二、并集

  并集使用addAll,A.addAll(B) 因为set本身就去重,所有直接全部添加到一个集合中取并集。

 1 import org.junit.Test;
 2 
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 
 6 /**
 7  * 并集
 8  *
 9  * @author zhongtao on 2018/5/31
10  */
11 public class UnionSet {
12     /**
13      * 并集测试
14      */
15     @Test
16     public void testUnionSet() {
17         Set<String> set1 = new HashSet<>();
18         Set<String> set2 = new HashSet<>();
19 
20         set1.add("a");
21         set1.add("b");
22         set1.add("c");
23 
24         set2.add("b");
25         set2.add("c");
26         set2.add("d");
27 
28         set1.addAll(set2);
29         System.out.println("并集是" + set1); //并集是[a, b, c, d]
30     }
31 }

三、差集

  差集使用removeAll方法,去掉一集合中包含的另一个集合的值。A.removeAll(B)。

 1 import org.junit.Test;
 2 
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 
 6 /**
 7  * 差集
 8  *
 9  * @author zhongtao on 2018/5/31
10  */
11 public class DifferenceSet {
12     /**
13      * 差集测试
14      */
15     @Test
16     public void testDifferenceSet() {
17         Set<String> set1 = new HashSet<>();
18         Set<String> set2 = new HashSet<>();
19 
20         set1.add("a");
21         set1.add("b");
22         set1.add("c");
23         set1.add("d");
24 
25         set2.add("c");
26         set2.add("d");
27         set2.add("e");
28         set2.add("f");
29 
30         set1.removeAll(set2);
31         System.out.println("差集是 " + set1); //差集是 [a, b]
32     }
33 }

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java基础之instanceof和transient关键字用法

下一篇:NIO-直接内存