在日常JAVA开发中,经常会对List集合进行各种各样的操作,这里针对List集合的加减操作做个小的总结:在我看来最常用的有两个,一个是对原List本身有改变,一个是原List本身无改变。
一、对原List本身有改变的方法即:List1.addAll(List2) // List1与List2两个集合进行相加,返回一个boolean类型值,原有的List1值有变化,List2不变; List1.removeAll(List2) //List1与List2两个值进行相减,返回一个boolean类型值,原有的List1值有变化,List2不变;
例子(加法):List<String> list1 = new ArrayList<String>();
list1.add("1");
list1.add("3");
list1.add("5");
List<String> list2 = new ArrayList<String>();
list2.add("2");
list2.add("4");
list2.add("5");
list1.addAll(list2);
System.out.println(list1); //输出结果为:[1, 3, 5, 2, 4, 5]
(减法):List<String> list1 = new ArrayList<String>();
list1.add("1");
list1.add("3");
list1.add("5");
List<String> list2 = new ArrayList<String>();
list2.add("2");
list2.add("4");
list2.add("5");
list1.removeAll(list2);
System.out.println(list1); //输出结果为:[1, 3]
二、 对原本List无改变的方法即:ListUtils.union(List1,List2) //List1与List2相加,返回的是一个List集合,原有的List1与List2都没有改变;ListUtils.subtract(List1,List2) //List1与List2相减,返回的是一个List集合,原有的List1与List2都没有改变
例子(加法):List<String> list1 = new ArrayList<String>();
list1.add("1");
list1.add("3");
list1.add("5");
List<String> list2 = new ArrayList<String>();
list2.add("2");
list2.add("4");
list2.add("5");
List<String> list = ListUtils.union(list1,list2);
System.out.println(list); //输出结果为:[1, 3, 5, 2, 4, 5]
(减法):List<String> list1 = new ArrayList<String>();
list1.add("1");
list1.add("3");
list1.add("5");
List<String> list2 = new ArrayList<String>();
list2.add("2");
list2.add("4");
list2.add("5");
List<String> list = ListUtils.subtract(list1,list2);
System.out.println(list); //输出结果为:[1, 3]