对集合进行 交集,并集,差集,无重复的并集操作,很多朋友都是习惯性的使用 遍历就可以完成这个操作,这样也能够实现,但不够优雅,请看下面的代码完成这个操作
public static void main(String[] args) { List<String> list1 = new ArrayList<String>(); list1.add("A"); list1.add("B"); list1.add("C"); list1.add("A"); List<String> list2 = new ArrayList<String>(); list2.add("B"); list2.add("C"); // 并集 // list1.addAll(list2); // 交集 // list1.retainAll(list2); // 差集 // list1.removeAll(list2); // 无重复的并集 并集是集合A加集合B,那如果集合A和集合B有交集,就需要确保并集的结果中只有 // 一份交集,这样的结果为无重复并集 // ① 删除list2中 与 list1 中有交集部分的数据 list2.removeAll(list1); //② 把剩余的 list2 元素加到 list1 中 list1.addAll(list2); for (String str : list1) { System.out.println(str); } } |
在实现 无重复交集的时候,不能采用 Set 方法完成这个任务,因为如果 集合1中已经有了重复的元素,使用Set 集合 会将 集合1 中的重复的元素进行删除,这样的将结果就不是无重复交集的结果了,无重复交集的结果,是删除 集合1 和集合2中 有交集部分的数据 只出现一次,不含对 集合本身数据的 操作