• A+

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

一、交集

  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 }

注意:本文归作者所有,未经作者允许,不得转载
所属分类:问答

全部评论: 0

    我有话说:
    ×