如何去除List集合中重复的元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何去除List集合中重复的元素相关的知识,希望对你有一定的参考价值。

参考技术A

List去重是通过将List集合转换成Set。Set是最简单的一种集合,不保存重复的元素,集合中的对象不按特定的方式排序,并且没有重复对象。

新建一个Test类,如下所示:

publicclassTest

@SuppressWarnings("unchecked","rawtypes")

publicstaticvoidmain(String[]args)

Listlist=newArrayList();

list.add(1);

list.add(2);

list.add(3);

list.add(4);

list.add(1);

System.out.println(list);

//创建一个set集合

Setset=newHashSet();

//创建一个新的list集合

ListnewList=newArrayList();

set.addAll(list);

newList.addAll(set);

System.out.println(newList);

扩展资料

参考list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。

list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_front、pop_front,这是vector不具备的。

和vector另一点不同的是,list的迭代器不会存在失效的情况,不像vector会保留备份空间,在超过容量额度时重新全部分配内存,导致迭代器失效;list没有备份空间的概念,出入一个元素就申请一个元素的空间,所以它的迭代器不会失效。

参考资料来源:百度百科-list

List集合去除重复数据

【转自】Java中List集合去除重复数据的方法

1. 循环list中的所有元素然后删除重复

public   static   List  removeDuplicate(List list)  {       
  for  ( int  i  =   0 ; i  <  list.size()  -   1 ; i ++ )  {       
      for  ( int  j  =  list.size()  -   1 ; j  >  i; j -- )  {       
           if  (list.get(j).equals(list.get(i)))  {       
              list.remove(j);       
            }        
        }        
      }        
    return list;       
}  

2. 通过HashSet踢除重复元素

public static List removeDuplicate(List list) {   
    HashSet h = new HashSet(list);   
    list.clear();   
    list.addAll(h);   
    return list;   
}   

3. 删除ArrayList中重复元素,保持顺序

// 删除ArrayList中重复元素,保持顺序     
 public static void removeDuplicateWithOrder(List 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);    
 }   

4.把list里的对象遍历一遍,用list.contain(),如果不存在就放入到另外一个list集合中

public static List removeDuplicate(List list){  
        List listTemp = new ArrayList();  
        for(int i=0;i<list.size();i++){  
            if(!listTemp.contains(list.get(i))){  
                listTemp.add(list.get(i));  
            }  
        }  
        return listTemp;  
    }  

转载:http://blog.csdn.net/u011728105/article/details/46594963

以上是关于如何去除List集合中重复的元素的主要内容,如果未能解决你的问题,请参考以下文章

去除list集合中重复项的几种方法

如何去除List集合中的重复元素? a,b,c,a,c,b,d,,,,,,

去除集合中重复字符串元素的案例

List集合去除重复元素,不打乱顺序(数组转List)

List集合去除重复数据

List集合去除重复对象及equals()hashCode()方法的作用