1 背景
做权限的时候,需要取交集对比以判断是否有权限
2 解决办法
A.retainAll(B), 当A与B完全相同的时候,A集合的元素不变,返回false
当A与B完全不相同的时候,A集合变为[ ],返回true
当A与B部分相同的时候,A集合变为交集部分,返回true
3 补充
Java8,通过stream流,也可以很好的实现交集并集
// 交集
List intersection = list1.stream().filter(item -> list2.contains(item)).collect(Collectors.toList());
// 差集 (list1 - list2)
List reduce1 = list1.stream().filter(item -> !list2.contains(item)).collect(Collectors.toList());
// 差集 (list2 - list1)
List reduce2 = list2.stream().filter(item -> !list1.contains(item)).collect(Collectors.toList());
// 并集
List listAll = list1.parallelStream().collect(Collectors.toList());
List listAll2 = list2.parallelStream().collect(Collectors.toList());
listAll.addAll(listAll2);
// 去重并集
List listAllDistinct = listAll.stream().distinct().collect(Collectors.toList());//在上一个并集的基础上