交集 | listA.retainAll(listB) | listA内容变为listA和listB都存在的对象 | listB不变 |
差集 | listA.removeAll(listB) | listA中存在的listB的内容去重 | listB不变 |
并集 | listA.removeAll(listB) listA.addAll(listB) | 为了去重,listA先取差集,然后追加全部的listB | listB不变 |
public static void main(String[] args) {
List<String> listA = new ArrayList<String>(){{
add("A");
add("B");
add("C");
add("D");
add("E");
add("F");
}};
List<String> listB = new ArrayList<String>(){{
add("A");
add("G");
add("Q");
add("D");
add("O");
add("F");
add("M");
add("X");
}};
// 并集
System.out.println("--并集---------------------");
listA.removeAll(listB);
listA.addAll(listB);
System.out.println("listA: " + listA);
System.out.println("listB:" + listB);
List<String> listC = new ArrayList<String>(){{
add("A");
add("B");
add("C");
add("D");
}};
List<String> listD = new ArrayList<String>(){{
add("A");
add("G");
add("Q");
add("D");
add("O");
}};
// 交集
System.out.println("--交集---------------------");
listC.retainAll(listD);
System.out.println("listC: " + listC);
System.out.println("listD:" + listD);
List<String> listE = new ArrayList<String>(){{
add("A");
add("B");
add("C");
add("D");
add("E");
}};
List<String> listF = new ArrayList<String>(){{
add("A");
add("G");
add("Q");
add("D");
}};
// 差集
System.out.println("--差集---------------------");
listE.removeAll(listF);
System.out.println("listE:" + listE);
System.out.println("listF:" + listF);
}
运行结果: