`
Franciswmf
  • 浏览: 780248 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

删除ArrayList中重复元素

 
阅读更多

方法一:循环元素删除 (使用的方式FOR循环操作。不建议使用大数据量的转换。。n*n的循环量)
//  删除ArrayList中重复元素
public   static   void  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);
      }
    }
  }
  System.out.println(list);
}

方法二:通过HashSet剔除 (hash数组不能产生重复数据的特性,来转换LIST)
//  删除ArrayList中重复元素
    HashSet hSet  =   new  HashSet(list);
    list.clear();
    list.addAll(hSet);
    System.out.println(list);


方法三: 删除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);
}
________________________________________________
// 项目实践:删除ArrayList中重复元素,保持顺序
public   List  removeDuplicateWithOrder(List list)   {
for (int i = 0; i < list.size(); i++) {
System.out.println("剔除前:"+list.get(i));
}
      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);
     for (int i = 0; i < list.size(); i++) {
System.out.println("剔除后:"+list.get(i));
}
     return list;
    
}

分享到:
评论

相关推荐

    删除List中的重复值

    // 删除ArrayList中重复元素 public static void removeDuplicate(List list) { for ( int i = 0 ; i () - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j &gt; i; j -- ) { if (list.get(j).equals(list.get(i...

    2种Java删除ArrayList中的重复元素的方法

    主要介绍了2种Java删除ArrayList中的重复元素的方法,感兴趣的朋友可以参考下

    StringUtils 工具类

    包含对象转list、获取两个日期之间的所有日期、获取两个日期之间的所有日期(小时)、获取两个日期之间的所有日期(分钟)、根据文件路径创建所有文件夹、删除ArrayList中重复元素,保持顺序、判断字符串是否包含...

    阿里P7面试题包含解答

    List中的元素有序、允许有重复的元素,Set中的元素无序、不允许有重复元素。 3. Vector线程同步,ArrayList、LinkedList线程不同步。 4. LinkedList适合指定位置插入、删除操作,不适合查找;ArrayList、Vector适合...

    基于jdk1.8 的ArrayList的源码分析

    主要会从ArrayList的构造方法、增加元素、删除元素、获取元素、查询元素、清空元素、判断元素是否存在以及ArrayList的遍历进行入手分析。 一:ArrayList的具体实现 1.1:构造函数 ArrayList list = new ArrayList();...

    GridView或者数组形式的元素循环删除错误

    关于数组和GridView 或者和java中ArrayList相同的数据结构,其中元素在循环对比删除时,遇到的一些比如数组越界,或者删除一项后,中间隔一项,跳到下下项继续再比较的情况,如何分析,和解决。

    Java集合框架List接口.pdf

    Java集合框架中的List接口是一种有序的集合,它可以存储重复的元素。它是Collection接口的子接口,提供了一系列可以对列表进行操作的方法,如添加、插入、删除、获取元素等。List接口还可以通过索引访问元素,类似于...

    ArrayList类&关于列表有用的一些方法.pptx

    (重点、难点)11.11 java.util.ArrayList(掌握)存放对象的动态数组,用户可以根据元素的索引访问元素允许放重复的元素,并且允许null元素11.11 ArrayList类(p375)存储对象的类,不限定个数,比对象数组方便。...

    Java中集合相关知识点复习

    ArrayList允许空值和重复元素,当往ArrayList中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。ArrayList扩容的长度是原长度的1.5倍 由于ArrayList底层基于数组实现,所以其可以保证...

    字符串去重工具(C#语言开发)

    【温馨提示】不得用于商业、不合法用途...(2)选中“①删除重复元素留一个” (3)点击中间的按钮开启转换 使用到的知识点: (1)字符串转化为char[]数组 (2)char[]元素导入Arraylist集合 (3)删除指定索引的元素

    40道java集合面试题含答案(很全很详细)

    List接口提供了按照索引位置访问元素的方法,以及添加、删除和修改元素的操作。List接口的实现类包括ArrayList、LinkedList等。 Set接口是无序的集合,元素不能重复。Set接口的实现类包括HashSet、LinkedHashSet等...

    基于javatcpsocket通信的拆包和装包源码-all-in-one:知识点总结

    List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问,查找元素效率高,插入删除效率低。 Set集合是无序集合,集合中的元素不可以重复,检索效率低下,删除和插入效率高,访问集合...

    java面试宝典

    65、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别 17 66、HashMap和Hashtable的区别 17 67、说出ArrayList,Vector, LinkedList的存储性能和特性 17 68、java中有几...

    Java面试宝典2010版

    65、去掉一个Vector集合中重复的元素 66、Collection 和 Collections的区别。 67、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 68、你所知道的集合类都有哪些...

    大数据面试题.pdf

    ⽼掉⽛的问题了,还在这⾥⽼⽣常谈:List特点:元素有放⼊顺序,元素可重复 ,Set特点:元素⽆放⼊顺序,元素不可重复。 1-2)数据库的三⼤范式? 原⼦性、⼀致性、唯⼀性 1-3)java 的io类的图解 1-4)对象与引⽤...

    java笔记整理(超详细) java笔记整理(超详细)

    Java集合可以分为Collection和Map两种体系: Collection接口: ​ List:元素有序,可重复的集合 ​ ArrayList: 底层数组实现,有利于随机访问get ​ LinkedList:底层是链表,有利于频繁的插入、删除操作(ArrayList删除和...

    java笔记整理(超详细)

    Java集合可以分为Collection和Map两种体系: Collection接口: ​ List:元素有序,可重复的集合 ​ ArrayList: 底层数组实现,有利于随机访问get ​ LinkedList:底层是链表,有利于频繁的插入、删除操作(ArrayList删除和...

    java8集合源码分析-CollectionDemo:自己复习集合框架时候的例子

    有序、有索引、元素可重复 1.ArrayList: 底层是数组结构、查询快、增删慢、不同步 添加第一个元素的时候,创建默认个数是10个,如果超出了10个,就创建一个长度为 10+10&gt;&gt;1=15的数组 2.LinkedList: 底层是链表结构、...

    binary-heap:用Java编写的BinaryHeap类

    它对于堆排序的实现很有用,在这种排序中,将无序项目的数组加载到BinaryHeap中,并且最小优先级元素被重复删除并放入旧数组中。 BinaryHeap不是将堆实现为树,而是将其实现为ArrayList,因为可以使用简单的数学...

Global site tag (gtag.js) - Google Analytics