Java ArrayList合并并删除重复数据3种方法

1. 通过List自带方法list.retainAll()

List temp=new ArrayList(l1);//用来保存两者共同有的数据
temp.retainAll(l2);//temp中只保留两者共同的数据
l1.removeAll(temp);//l1中去掉两者共同有的数据
List l3=new ArrayList();
l3.addAll(l1);
l3.addAll(l2);
System.out.println(l3);

2. 构造Set集合。Set集合本身是不允许重复记录的

Set s=new TreeSet(l1);
for(Integer i:l2){
  //当添加不成功的时候 说明s中已经存在该对象
  s.add(i);
}
System.out.println(s);

3. 遍历列表,对比数据

public static ArrayList addArrayList(ArrayList list1, ArrayList list2) {
    ArrayList list3 = new ArrayList();
    if (list1 == null || list1.size() == 0) {
        list3 = list2;
    } else if (list2 == null || list2.size() == 0) {
        list3 = list1;
    } else {
        for (int i = 0; i < list1.size(); i++) { // 遍历list1
            boolean isExist = false;
            for (int j = 0; j < list2.size(); j++) {
                if (list1.get(i).equals(list2.get(j))) {
                    isExist = true; // 找到相同项,跳出本层循环
                    break;
                }
            }
            if (!isExist) { // 不相同,加入list3中
                list3.add(list1.get(i));
            }
        }

        for (int k = 0; k < list2.size(); k++) {
            list3.add(list2.get(k));
        }
    }
    return list3;
}





版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。