Java集合List的差集、并集、交集
转载于:https://www.cnblogs.com/qlqwjy/p/9812919.html
一、List的差集
@Test
public void test1(){
List<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<String>();
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<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<String>();
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<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<String>();
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<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<String>();
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]
}