Java集合List的差集、并集、交集

一、List的差集

@Test
public void test1(){
List list1 = new ArrayList();
list1.add("A");
list1.add("B");
List list2 = new ArrayList();
list2.add("B");
list2.add("C");
// list1.removeAll(list2);
// System.out.println(list1); //[A]
// System.out.println(list2);//[B, C]
list2.removeAll(list1);
System.out.println(list1);//[A, B]
System.out.println(list2);//[C]
}
二、List的并集(带重复项)
@Test
public void test2(){
List list1 = new ArrayList();
list1.add("A");
list1.add("B");
List list2 = new ArrayList();
list2.add("B");
list2.add("C");
// list1.addAll(list2);
// System.out.println(list1);//[A, B, B, C]
// System.out.println(list2);//[B, C]
list2.addAll(list1);
System.out.println(list1);//[A, B]
System.out.println(list2);//[B, C, A, B]
}

三、List的并集(不带重复项)

@Test
public void test3(){
List list1 = new ArrayList();
list1.add("A");
list1.add("B");
List list2 = new ArrayList();
list2.add("B");
list2.add("C");
// list1.removeAll(list2);
// list1.addAll(list2);
// System.out.println(list1);//[A, B, C]
// System.out.println(list2);//[B, C]
list2.removeAll(list1);
list2.addAll(list1);
System.out.println(list1);//[A, B]
System.out.println(list2);//[C, A, B]
}

四、List的交集

@Test
public void test4(){
List list1 = new ArrayList();
list1.add("A");
list1.add("B");
List list2 = new ArrayList();
list2.add("B");
list2.add("C");
// list1.retainAll(list2);
// System.out.println(list1);//[B]
// System.out.println(list2);//[B, C]
list2.retainAll(list1);
System.out.println(list1);//[A, B]
System.out.println(list2);//[B]
}