Java中List集合去除重复数据的方法汇总

 更新时间:2021年02月25日 09:10:56   作者:风中的小团团  
这篇文章主要给大家介绍了关于Java中List集合去除重复数据的方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

List集合概述

List集合是一个元素有序(每个元素都有对应的顺序索引,第一个元素索引为0)、且可重复的集合。

List集合常用方法

List是Collection接口的子接口,拥有Collection所有方法外,还有一些对索引操作的方法。

  • void add(int index, E element);:将元素element插入到List集合的index处;
  • boolean addAll(int index, Collection<? extends E> c);:将集合c所有的元素都插入到List集合的index起始处;
  • E remove(int index);:移除并返回index处的元素;
  • int indexOf(Object o);:返回对象o在List集合中第一次出现的位置索引;
  • int lastIndexOf(Object o);:返回对象o在List集合中最后一次出现的位置索引;
  • E set(int index, E element);:将index索引处的元素替换为新的element对象,并返回被替换的旧元素;
  • E get(int index);:返回集合index索引处的对象;
  • List<E> subList(int fromIndex, int toIndex);:返回从索引fromIndex(包含)到索引toIndex(不包含)所有元素组成的子集合;
  • void sort(Comparator<? super E> c):根据Comparator参数对List集合元素进行排序;
  • void replaceAll(UnaryOperator<E> operator):根据operator指定的计算规则重新设置集合的所有元素。
  • ListIterator<E> listIterator();:返回一个ListIterator对象,该接口继承了Iterator接口,在Iterator接口基础上增加了以下方法,具有向前迭代功能且可以增加元素:
  • bookean hasPrevious():返回迭代器关联的集合是否还有上一个元素;
  • E previous();:返回迭代器上一个元素;
  • void add(E e);:在指定位置插入元素;

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;
	}

总结

到此这篇关于Java中List集合去除重复数据方法汇总的文章就介绍到这了,更多相关Java List去除重复内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot 如何解决yml没有spring的小叶子标志问题

    springboot 如何解决yml没有spring的小叶子标志问题

    这篇文章主要介绍了springboot 如何解决yml没有spring的小叶子标志问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java聊天室之实现聊天室客户端功能

    Java聊天室之实现聊天室客户端功能

    这篇文章主要为大家详细介绍了Java简易聊天室之实现聊天室客户端功能,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以了解一下
    2022-11-11
  • 关于spring data jpa一级缓存的问题

    关于spring data jpa一级缓存的问题

    这篇文章主要介绍了关于spring data jpa一级缓存的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Spring Boot 中的自动配置autoconfigure详解

    Spring Boot 中的自动配置autoconfigure详解

    这篇文章主要介绍了Spring Boot 中的自动配置autoconfigure详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • 为什么SpringBoot的jar可以直接运行

    为什么SpringBoot的jar可以直接运行

    这篇文章主要介绍了为什么SpringBoot的jar可以直接运行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • lazy init控制加载在Spring中如何实现源码分析

    lazy init控制加载在Spring中如何实现源码分析

    这篇文章主要为大家介绍了lazy init控制加载在Spring中如何实现源码分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 一键清除maven仓库中下载失败的jar包的实现方法

    一键清除maven仓库中下载失败的jar包的实现方法

    这篇文章主要介绍了一键清除maven仓库中下载失败的jar包的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • JNDI具体用法详解

    JNDI具体用法详解

    JNDI是java命名和目录接口,本文主要介绍了JNDI具体用法详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 简述Java中进程与线程的关系_动力节点Java学院整理

    简述Java中进程与线程的关系_动力节点Java学院整理

    在 Java 语言中,对进程和线程的封装,分别提供了 Process 和 Thread 相关的一些类。本文首先简单的介绍如何使用这些类来创建进程和线程
    2017-05-05
  • 详解java线程的开始、暂停、继续

    详解java线程的开始、暂停、继续

    本文将介绍通过线程读取文件内容,并且可以控制线程的开始、暂停、继续,来控制读文件。具有一定的参考作用,下面跟着小编一起来看下吧
    2017-01-01

最新评论