一、交集
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 }