兩個List合並去重


今天遇到一個合並去重問題,從網上搜索一樣總結出來兩個比較簡單的方法,這里去重是只能取出地址相同的數據,例如:如果兩個字符串的值相同但都是單獨new出來的這樣去不了

@Test  
public void test3(){  
        List<MyTest> a = new ArrayList<MyTest>();  
        List<MyTest> b = new ArrayList<MyTest>();  
        MyTest a1 = new MyTest();  
        MyTest a2 = new MyTest();  
        MyTest b1 = new MyTest();  
        MyTest b2 = new MyTest();  
        a1.setTest("a");  
        a2.setTest("c");  
        b1.setTest("b");;  
        b2.setTest("c");  
   
        a.add(a1);  
        a.add(a2);  
        b.add(b1);  
        b.add(a2);  
        b.add(b2);  
        /*方法一*/  
        a.removeAll(b);  
        a.addAll(b);  
        /*方法二*/  
        Set<Object> set = new HashSet<Object>();    
        set.addAll(a);    
        set.addAll(b);  
        List<Object> c = new ArrayList<Object>(set);   
        //經過上面兩種方法處理后,a和c的數據都是a1,a2,b1,b2,注意:b2和a2中的值是一樣的但是實際上他們沒有相同的地址,所以他們並不是一樣的數據  
  
}     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM