兩個ArrayList合併,並且去掉重複資料的演算法
阿新 • • 發佈:2019-01-01
import java.util.*;
public class Test {
public static void main(String[] args){
List <Integer> l1=new ArrayList<Integer>();
l1.add(1);l1.add(2);l1.add(3);
l1.add(4);l1.add(5);l1.add(6);
List <Integer> l2=new ArrayList<Integer>();
l2.add(4);l2.add(5);l2.add(6);
l2.add(7);l2.add(8);l2.add(9);
Set<Integer> s=new TreeSet(l1);
for(Integer i:l2){
//當新增不成功的時候 說明s中已經存在該物件,直接remove掉該物件即可
if(!s.add(i)) s.remove(i);
}
System.out.println(s);
//還可以用下面一種方法
List <Integer> temp=new ArrayList<Integer>(l1);//用來儲存兩者共同有的資料
temp.retainAll(l2);
l1.removeAll(temp);//l1中去掉兩者共同有的資料
l2.removeAll(temp);//l2中去掉兩者共同有的資料
List <Integer> l3=new ArrayList<Integer>();
l3.addAll(l1);
l3.addAll(l2);
System.out.println(l3);
}
}
public class Test {
public static void main(String[] args){
List <Integer> l1=new ArrayList<Integer>();
l1.add(1);l1.add(2);l1.add(3);
l1.add(4);l1.add(5);l1.add(6);
List <Integer> l2=new ArrayList<Integer>();
l2.add(4);l2.add(5);l2.add(6);
l2.add(7);l2.add(8);l2.add(9);
Set<Integer> s=new TreeSet(l1);
for(Integer i:l2){
//當新增不成功的時候 說明s中已經存在該物件,直接remove掉該物件即可
if(!s.add(i)) s.remove(i);
}
System.out.println(s);
//還可以用下面一種方法
List <Integer> temp=new ArrayList<Integer>(l1);//用來儲存兩者共同有的資料
temp.retainAll(l2);
l1.removeAll(temp);//l1中去掉兩者共同有的資料
l2.removeAll(temp);//l2中去掉兩者共同有的資料
List <Integer> l3=new ArrayList<Integer>();
l3.addAll(l1);
l3.addAll(l2);
System.out.println(l3);
}
}