java中删除list重复元素

方法一:循环元素删除 
//  删除ArrayList中重复元素 
public   static   void  removeDuplicate(List list)   { 
   for  ( int  i  =   0 ; i  <  list.size() ; i ++ )   { 
    for  ( int  j  =  list.size()  -   1 ; j  >  i; j -- )   { 
      if  (list.get(j).equals(list.get(i)))   { 
        list.remove(j); 
      } 
    } 
  } 
  System.out.println(list); 

方法二:通过HashSet剔除 
//  删除ArrayList中重复元素 
  public   static   void  removeDuplicate(ArrayList list)   { 
    HashSet h  =   new  HashSet(list); 
    list.clear(); 
    list.addAll(h); 
    System.out.println(list); 


如果用Set ,倘若list里边的元素不是基本数据类型而是对象,

那么请覆写Object的boolean   equals(Object   obj)   和int   hashCode()方法.

return new ArrayList(new HashSet(list)); 


方法三: 删除ArrayList中重复元素,保持顺序 
// 删除ArrayList中重复元素,保持顺序 ,但会有些性能上的牺牲
public   static   void  removeDuplicateWithOrder( ArrayList list)   { 
      Set set  =   new  HashSet(); 
      List newList  =   new  ArrayList(); 
   for  (Iterator iter  =  list.iterator(); iter.hasNext();)   { 
         Object element  =  iter.next(); 
         if  (set.add(element)) 
            newList.add(element); 
     } 
     list.clear(); 
     list.addAll(newList); 
     System.out.println( " remove duplicate "   +  list); 

你可能感兴趣的:(java中删除list重复元素)