前几天. 工作中用到了List的交集, 并集, 补集. 运算. 之前有封装过相关的List工具类. 在此, 再次总结一下.
/** * 交集. * 注意直接使用 retainAll方法会改变原数据集合. 需要拷贝使用. */ public static <T> List<T> intersection(java.util.List<T> listA, List<T> listB){ if(CollectionUtils.isEmpty(listA)){ return listB; } else if(CollectionUtils.isEmpty(listB)){ return listA; } List<T> copyOfArrayListA = new ArrayList<>(listA); copyOfArrayListA.retainAll(listB); return copyOfArrayListA; }
/** * 并集. */ public static <T> List<T> union(java.util.List<T> listA, List<T> listB){ if(CollectionUtils.isEmpty(listA)){ return listB; } else if(CollectionUtils.isEmpty(listB)){ return listA; } List<T> copyOfArrayListA = new ArrayList<>(listA); copyOfArrayListA.removeAll(listB); copyOfArrayListA.addAll(listB); return copyOfArrayListA; }
[1].