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去除重复内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java List中数据的去重

    list中数据的去重,通常使用将list转换为set,简单直接,因为set集合的特点就是没有重复的元素.需要考虑一下两种情况: 1.List集合中的数据类型是基本数据类型 可以直接将list集合转换成set,就会自动去除重复的元素. 如下示例: public class Test { public static void main(String[] args) { List list = new ArrayList(); list.add(11); list.add(12); list.add(

  • java list去重操作实现方式

    Java中的List是可以包含重复元素的(hash code 和equals),那么对List进行去重操作有两种方式实现: 方案一:可以通过HashSet来实现,代码如下: 复制代码 代码如下: class Student { private String id; private String name; public Student(String id, String name) { super(); this.id = id; this.name = name; } @Override pu

  • Java中List集合对象去重及按属性去重的8种方法

    最近在写一些关于java基础的文章,但是我又不想按照教科书的方式去写知识点的文章,因为意义不大.基础知识太多了,如何将这些知识归纳总结,总结出优缺点或者是使用场景才是对知识的升华.所以我更想把java相关的基础知识进行穿针引线,进行整体上的总结. 总结java中创建并写文件的5种方式 总结java从文件中读取数据的6种方法 总结java创建文件夹的4种方法及其优缺点 总结java中删除文件或文件夹的7种方法 总结java中文件拷贝剪切的5种方式 比如之前我已经写了上面的这些内容,如果对java基

  • Java实现对两个List快速去重并排序操作示例

    本文实例讲述了Java实现对两个List快速去重并排序操作.分享给大家供大家参考,具体如下: 1:去重并排序 package twolist; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.uti

  • Java中对List去重 Stream去重的解决方法

    问题 当下互联网技术成熟,越来越多的趋向去中心化.分布式.流计算,使得很多以前在数据库侧做的事情放到了Java端.今天有人问道,如果数据库字段没有索引,那么应该如何根据该字段去重?大家都一致认为用Java来做,但怎么做呢? 解答 忽然想起以前写过list去重的文章,找出来一看.做法就是将list中对象的hashcode和equals方法重写,然后丢到HashSet里,然后取出来.这是最初刚学Java的时候像被字典一样背写出来的答案.就比如面试,面过号称做了3年Java的人,问Set和HashMa

  • Java中List根据map的某个key去重的代码

    话不多说,看代码和效果 /** * 根据map中的某个key 去除List中重复的map * @author shijing * @param list * @param mapKey * @return */ public static List<Map<String, Object>> removeRepeatMapByKey(List<Map<String, Object>> list, String mapKey){ if (CollectionUt

  • java中List对象列表实现去重或取出及排序的方法

    前言 因为在面试的时候碰到几次list的去重和排序,觉着有必要给大家总结一下具体的方法,分享出来供大家学习参考,话不多说了,来一起看看下面介绍的一种做法: 一.list去重 1.1 实体类Student List<Student>容量10k以上,要求去重复.这里Student的重复标准是属性相同,因此需要重写equals和hashcode方法,不知道有几个可以手写出来. student的equals方法: public void equals(Object o){ if(this == o)

  • java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】

    本文实例讲述了java正则表达式实现提取需要的字符并放入数组.分享给大家供大家参考,具体如下: 这里演示Java正则表达式提取需要的字符并放入数组,即ArrayList数组去重复功能. 具体代码如下: package com.test.tool; import java.util.ArrayList; import java.util.HashSet; import java.util.regex.*; public class MatchTest { public static void ma

  • 如何实现java8 list按照元素的某个字段去重

    list 按照元素的某个字段去重 @Data @AllArgsConstructor @NoArgsConstructor public class Student { private Integer age; private String name; } 测试数据 List<Student> studentList = Lists.newArrayList(); studentList.add(new Student(28, "river")); studentList.

  • 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所有的元素都插入到

  • Java实现数组去除重复数据的方法详解

    本文实例讲述了Java实现数组去除重复数据的方法.分享给大家供大家参考,具体如下: 前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现,有好多方法可以实现,现在就总结一下,比较简单的几种. 一.用List集合实现 int[] str = {5, 6, 6, 6, 8, 8, 7,4}; List<Integer> list = new ArrayList<Integer>(); for (int i=0; i<s

  • Angularjs的ng-repeat中去除重复数据的方法

    本文实例讲述了Angularjs的ng-repeat中去除重复数据的方法.分享给大家供大家参考,具体如下: 一.JS: ngApp.filter('unique', function () { return function (collection, keyname) { var output = [], keys = []; angular.forEach(collection, function (item) { var key = item[keyname]; if (keys.index

  • ES5 ES6中Array对象去除重复项的方法总结

    输入例子 [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN].uniq() 输出例子 [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a'] 分析 题目要求给 Array 添加方法,所以我们需要用到 prototype.数组去重本身算法不是很难,但是在 JavaScript 中很多人会忽视 NaN 的存在,因为在 JS 中 NaN !== NaN .但是在去重中我们

  • Java 中实现随机无重复数字的方法

    一般有点开发经验的朋友都能实现这样的功能,只不过是效率上的问题.我们一般在面对这样的问题时,总会平铺直序的联想到,先生成一个数组,然后在一个循环中向数组中添加随机数字,在添加数字的过程中先查找一下数组中是否存在这个数字,如果不存在这个数字就直接添加到数组中:如果存在这个数字就不添 加.我们一般都是这样考虑问题的,这样考虑也能实现功能,我刚才也说了,只不过是效率上的问题. 为了更好地理解这个题意,我们先来看下具体内容:生成一个1-100 的随机数组,但数组中的数字不能重复,即位置是随机的,但数组元

  • java中List集合及其实现类的方法详解

    List集合_List接口介绍 特点 1).有序的: 2).可以存储重复元素: 3).可以通过索引访问: List<String> list = new ArrayList<>(); list.add("张无忌"); list.add("张三丰"); list.add("章子怡"); list.add("章子怡");//OK的,可以添加 for(String s : list){ System.out.

  • 如何去除Java中List集合中的重复数据

    1.循环list中的所有元素然后删除重复 public class duplicatRemoval { 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; } } 总结:

  • java中List去除重复数据的5种方式总结

    前言 List 是一个接口,它继承于Collection的接口.它代表着有序的队列.当我们讨论List的时候,一般都和Set作比较. List中元素可以重复,并且是有序的(这里的有序指的是按照放入的顺序进行存储.如按照顺序把1,2,3存入List,那么,从List中遍历出来的顺序也是1,2,3). Set中的元素不可以重复,并且是无序的(从set中遍历出来的数据和放入顺序没有关系). 以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据 1.使用LinkedHashSet删除

  • Java替换int数组中重复数据的方法示例

    本文实例讲述了Java替换int数组中重复数据的方法.分享给大家供大家参考,具体如下: package test; import java.util.HashSet; public class TestList { /** * 根据传递过来的参数过滤掉重复数据 * @param number:需要过滤掉的数据 * @return:筛选好的新数组 */ public static int[] Filter(int[] number){ HashSet<Integer> hs=new HashSe

  • 浅谈Java中的集合存储数据后,输出数据的有序和无序问题

    HashSet , TreeSet , 无序是指存储数据的顺序和取出数据的顺序不一致:但是TreeSet 是按照指定的顺序排个序出来: 如果,我们想按照数据输入的顺序依次输出数据(即,如果依次输入4.1.7.3,输出时依次是4.1.7.3),此时需要用LinkedHashMap ,LinkedHashSet package Demo; import java.util.*; import java.util.Map.*; public class DemoMap { public static

随机推荐