今天要用到差集,突然懵逼了,然后脑子一抽写出了下面的代码

1
2
3
4
5
6
7
8
9
Set<String> set1 = new HashSet<>();
Set<String> set2 = new HashSet<>();
set1.add("a");
set1.add("b");
set1.add("c");
set2.add("c");
set2.add("d");
set2.add("e");
System.out.println(set1 & set2);

在有些语言中这样是可以求出交集的,但是在java中&是一个位运算符,不能这样用。

交集就是两个集合都有的部分,java的集合也提供了对应的方法,retainAll

求交集,并集这些还是用set集合合适点

交集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Set<String> set1 = new HashSet<>();
Set<String> set2 = new HashSet<>();
set1.add("a");
set1.add("b");
set1.add("c");
set2.add("c");
set2.add("d");
set2.add("e");
//交集
set1.retainAll(set2);
System.out.println("交集是 "+set1);

并集

1
set1.addAll(set2);

差集

1
set1.removeAll(set2);