<>java中set集合的交集、并集、差集
<>集合关系示例图
<>示例代码
public static void contextLoads() { List<String> a= Arrays.asList("深入理解Java虚拟机"
,"TCP协议","Spring源码解读","Mybatis源码解读"); List<String> b= Arrays.asList("SpringMVC",
"Mysql","SqlServer","TCP协议"); HashSet<String> set = new HashSet<>(); //计算两个集合的交集
System.out.println("-------计算A集合与B集合相交的部分------"); set.addAll(a); set.retainAll(
b); System.out.println(set); set.clear(); //计算A集合中不包含B集合的部分 System.out.println(
"-------计算A集合不在B集合的部分------"); set.addAll(a); set.removeAll(b); System.out.
println(set); set.clear(); //计算B集合不在A集合的部分 System.out.println(
"-------计算B集合不在A集合的部分------"); set.addAll(b); set.removeAll(a); System.out.
println(set); set.clear(); //计算B集合不在A集合的部分 System.out.println(
"-------计算A集合与B集合的并集------"); set.addAll(b); set.addAll(a); System.out.println(
set); set.clear(); //计算A集合与B集合的差集 (并集-交集=差集) System.out.println(
"-------计算A集合与B集合的差集------"); //得到并集 set.addAll(b); set.addAll(a); //得到交集
HashSet<String> hashSet = new HashSet<>(); hashSet.addAll(a); hashSet.retainAll(
b); set.removeAll(hashSet); System.out.println(set); }
<>控制台输出结果
-------计算A集合与B集合相交的部分------ [TCP协议] -------计算A集合不在B集合的部分------ [Mybatis源码解读,
深入理解Java虚拟机, Spring源码解读] -------计算B集合不在A集合的部分------ [Mysql, SpringMVC,
SqlServer] -------计算A集合与B集合的并集------ [Mybatis源码解读, 深入理解Java虚拟机, Mysql,
SpringMVC, TCP协议, SqlServer, Spring源码解读] -------计算A集合与B集合的差集------
[Mybatis源码解读, 深入理解Java虚拟机, Mysql, SpringMVC, SqlServer, Spring源码解读]