set、list集合的交(retainAll )、差集(removeAll )没有区别,这一点是相同的。
set、list集合的集合addAll有差异。 set可以重复。 不重复list
publicstaticvoidmain (string [ ] args ) {
setintegerresult=newhashsetinteger (;
setintegerset1=newhashsetinteger { }
add(1);
add(3;
add(5;
};
setintegerset2=newhashsetinteger { }
add(1);
add(2;
add(3;
};
result.clear (;
result.addall(set1;
System.out.println (在重复交集之前(1) set1 );
System.out.println (在重复交集之前(2) set2);
result.retainall(set2;
system.out.println('set1和set2的交集为' result );
result.clear (;
result.addall(set2;
System.out.println (差集前1:' set1 );
System.out.println (差集前2:' set2);
result.removeall(set1;
system.out.println('set2和set1之差为' result );
result.clear (;
result.addall(set1;
result.addall(set2;
system.out.print(set1和set2的并集) result );
system.err.print('set1集合(集合)去重复('n ' );
listintegerlist=newarraylistinteger (;
listintegerlist1=newarraylistinteger { }
add(1);
add(3;
add(5;
};
listintegerlist2=newarraylistinteger {
{
add(1);
add(2;
add(3;
};
list.clear (;
list.addall(list1;
System.out.println (在重复交集之前(1) list1);
System.out.println (在重复交集之前(2) list2);
list.retainall(list2;
system.out.println('list1和list2的交集为' list ' );
list.clear (;
list.addall(list2;
System.out.println (差集前1:' list1);
System.out.println (差集前2:' list2);
list.removeall(list1;
system.out.println('list2和list1之差为' list );
list.clear (;
list.addall(list1;
list.addall(list2;
system.out.print;
system.err.print('list集合和集:不重复) );
}
输出结果:
在重复相交之前1:[ 1,3,5 ]
在重复相交之前2:[ 1,2,3 ]
set1和set2的交叉为[ 1,3 ]
差集前1:[ 1,3,5 ]
差集前2:[ 1,2,3 ]
set2和set1的差集是[2]
set1和set2的并集: [ 1,2,3,set1的并集:重复
在重复相交之前1:[ 1,3,5 ]
在重复相交之前2:[ 1,2,3 ]
list1和list2的交叉为[ 1,3 ]
差集前1:[ 1,3,5 ]
差集前2:[ 1,2,3 ]
list2和list1的差集是[2]
list1和set2的并集: [ 1,3,5,1,2,3 ] list的并集:不重复