Java list去重

  

  public void testList() {  
       
     List<Integer> list=new ArrayList<Integer>();  
       
     list.add(1);  
     list.add(2);  
     list.add(4);  
     list.add(1);  
     list.add(2);  
     list.add(5);  
     list.add(1);  
     List<Integer> listTemp= new ArrayList<Integer>();  
     Iterator<Integer> it=list.iterator();  
     while(it.hasNext()){  
      int a=it.next();  
      if(listTemp.contains(a)){  
       it.remove();  
      }  
      else{  
       listTemp.add(a);  
      }  
     }  
     for(Integer i:list){  
      System.out.println(i);  
     }  
    }  

 

 

方法二:直接将结果赋值给另一个List

 

    public void testList2() {  
        List<Integer> list=new ArrayList<Integer>();  
        list.add(1);  
        list.add(2);  
        list.add(4);  
        list.add(1);  
        list.add(2);  
        list.add(5);  
        list.add(1);  
        List<Integer> tempList= new ArrayList<Integer>();  
        for(Integer i:list){  
            if(!tempList.contains(i)){  
                tempList.add(i);  
            }  
        }  
        for(Integer i:tempList){  
              
            System.out.println(i);  
        }  
    }     

 

 

利用 Set 去掉 list中重复值

1.对原来list顺序不要求

public static void removeDuplicate(ArrayList arlList)
 {
 HashSet h = new HashSet(arlList);
 arlList.clear();
 arlList.addAll(h);
 }


2.对原来list顺序不变

public static void removeDuplicateWithOrder

(ArrayList arlList)   
 {   
 Set set = new HashSet();   
 List newList = new ArrayList();   
 for (Iterator iter = arlList.iterator(); iter.hasNext(); )   
 {   
 Object element = iter.next();   
 if (set.add(element)) newList.add(element);   
 }   
 arlList.clear();   
 arlList.addAll(newList);   
 }

 



这里主要用了set add API 的作用当有了重复值时,返回false  

posted @ 2014-12-05 15:01  R星月  阅读(427)  评论(0编辑  收藏  举报
作者:lishaoying 出处:http://www.cnblogs.com/rxingyue 说明:本文是自己学习编程的一个历程,版权归作者和博客园共有,欢迎转载,请标明原文连接,如有问题联系我 Email:983068303@qq.com,非常感谢。

作者:lishaoying
出处:http://www.cnblogs.com/rxingyue
说明:本文是自己学习编程的一个历程,版权归作者和博客园共有,欢迎转载,请标明原文连接,如有问题联系我,非常感谢。