java 怎么把多个list 合并成一个去掉重复的
示例代码:
public static void main(String[] args){
List<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
List<Integer> list2 = new ArrayList<Integer>();
list2.add(1);
list2.add(4);
list2.add(7);
list2.add(10);
List<Integer> listAll = new ArrayList<Integer>();
listAll.addAll(list1);
listAll.addAll(list2);
listAll = new ArrayList<Integer>(new LinkedHashSet<>(listAll));
System.out.println(listAll);
}
输出:
[1, 2, 3, 4, 7, 10]
代码要典:
合并 使用java.util.List.addAll(Collection<? extends Integer>)
去重,借助LinkedHashSet
下面的例子讲了如何合并两个java list, 用简单的方法,而不用自己去造轮子,循环list 去做,用如下建档方法:
import java.util.ArrayList;import java.util.List;public class JoinList {
public static void main(String[] args) {
List<String> listA = new ArrayList<String>(); listA.add("A");
List<String> listB = new ArrayList<String>(); listB.add("B");
List<String> listFinal = new ArrayList<String>
(); listFinal.addAll(listA); listFinal.addAll(listB);
//same result //List<String> listFinal = new ArrayList<String>
(listA); //listFinal.addAll(listB);
System.out.println("listA : " + listA); System.out.println("listB : " + listB); System.out.println("listFinal : " + listFinal);
}}
你可以看到结果如下:
listA : [A]listB : [B]listFinal : [A, B]
其实最关键的就是调用 list 的 addall 方法,apache 的 listUtil , 里面有个 union 方法,其实也是用的 addall 方法。