java的集合操作,并、交、差、补

java集合操作(并、交、差、补)
以下是本人的一点浅薄认识,欢迎各位大佬批评指出。
Set<String> set1 = new TreeSet<>();        
Set<String> set2 = new TreeSet<>();         
set1.add("user_1");       
set1.add("user_2");        
set1.add("user");         
set2.add("user");        
set2.add("user_A");        
set2.add("user_B");
注:
HashSet 集合会调用 hashCode()和 equal()方法来实现元素对比;TreeSet 集合会调用compareTo方法来实现元素对比。TreeSet中的元素是有序且不重复的,非常适合进行集合操作。
如果集合元素是自定义的类对象,在判断重复元素的时候必须时现set集合的相应对比方法。

1.并集操作(set1∪set2):执行以后,set1中就包含set1和set2中的所有元素。

set1.addAll(set2);

 

2.交集操作(set1 ∩ set2):执行以后,set1中就包含set1和set2中的共有元素。retainAll方法实际执行原理是:删除set1中的“只存在于set1中,不存在于set2中”的元素。

set1.retainAll(set2);

 

3.差集操作(set1 - set2):执行以后,set1中就包含“只在set1中不在set2中”的元素,removeAll的执行原理:删除set1中“set1和set2共有”的元素。

set1.removeAll(set2);

 

4.补集操作(set1的补集):set1的补集是全集与set1的差集,即全集减去set1

//setA是set1和set2的并集
setA=set1;
setA.addAll(set2);
//setB是set1和set2的差集
setB=set1;
setB.removeAll(set2);
//setC是set1的相对补集:并集-差集
setC=setA.removeAll(setB);