这里分享下我做过的集合去重处理!顾名思义就是把一个集合处理了,然后得到一个新的集合,这个集合里面的元素是没有重复的!下面就是贴出的代码啦!
public class UniqueListUtils<T> { public static <T> List<T> removeDuplicateWithList(List<T> list) { Set<T> set = new HashSet<T>(); List<T> newList = new ArrayList<T>(); for (Iterator<T> iter = list.iterator(); iter.hasNext();) { T element = iter.next(); if (set.add(element)) newList.add(element); } return newList; } }
这里面的T就是传进去的任意对象类型拉,假如你要传入一个List<String>的集合,你的T就是String啦。当然这个方法你只需要调用就行了,随便传入一个已知的list集合进去就行啦!
这里面主要用到的就是hashSet里面的算法啦,hashSet自带了一个add方法,返回的是一个boolean值,他会自动根据hashcode来判断是否有相同值啦!这种方法比自己做if判断来得效率要高很多的!
再说说这种方法的劣势吧,这种方式去重并不是特别好,当然这种写法是一种给菜鸟的思路啦,java自带jdk里面有很好的实现方法,不过我们这些菜鸟很多都是不知道的!
这里引用下一楼大神的方法,他提供的就是原本jdk自带实现的方法,当然有兴趣的同学可以去看看jdk源码是怎么处理集合去重的!在这里感谢"酷的飞上天空"这位大神,让我又学到东西啦,多谢啦!有更好的算法或者实现的朋友么可以在下面讨论下哦,菜鸟们会很感激的啦!在此多谢啦!
[quote="酷的飞上天空"]List<String> list
// 去重
list = new ArrayList<String>(new HashSet<String>(list));
[/quote]
希望能帮到你!
最后我修改了下"酷的飞上天空"的写法再贴上来,需要的可以看看哈!
public static <T> List<T> removeDuplicateByHashSet(List<T> list){ List<T> newlist = new ArrayList<T>(new HashSet<T>(list)); return newlist; }
下面是hashset源码处理,贴出来看下 哈
public HashSet(Collection<? extends E> c) { map = new HashMap<>(Math.max((int) (c.size()/.75f) + 1, 16)); addAll(c); }
反正我现在的积累是看不太懂的!
相关推荐
总的来说,这个Java项目展示了如何利用Java 8的Stream API和并行流特性来高效地处理文本文件,实现行级别的去重功能。这种技术对于处理大量文本数据,尤其是需要进行清洗和预处理的情况非常有用。在实际应用中,可以...
在Java中处理JSON数据时,经常需要对JSON数组进行各种操作,其中去重是一个常见的需求。本文将详细介绍如何使用Java对`JSONArray`进行去重操作,并深入探讨背后的原理和技术细节。 ### JSON与Java JSON...
### Java数组去重与List集合去重的常用方法总结 #### 一、Java数组去重方法 在实际的开发工作中,经常会遇到需要处理数组中重复元素的问题。下面将详细介绍两种常用的数组去重方法。 ##### 方法一:For双循环法 ...
在Java编程中,处理列表(List)集合的去重是一个常见的任务,特别是在处理大量数据时。上述描述中提到了在实际开发中遇到的问题,即如何在一个没有主键的集合对象中,根据特定条件(如业务需求)筛选出不重复的元素...
【Java中List集合对象去重及按属性去重的8种方法】 在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性...
合并数组并且转为有序去重集合,我看到很多资源博客,百度都弄的很繁琐,所以自己总结描述了一下
### Java集合基础习题解析及答案 #### 题目一:统计子字符串在字符串中的出现次数 **题目描述:** 编写一个Java程序,定义一个方法`getCount`,该方法接收两个参数:一个字符串`str`和一个子字符串`s`,返回`s`在`...
java list根据对象的某个属性的值去重,java list根据对象的某个属性的值去重java list根据对象的某个属性的值去重
Java集合去重示例分享 Java集合去重示例是Java编程中常见的问题之一。在实际开发中,我们经常需要从集合中去除重复元素,以保证数据的唯一性和正确性。今天,我们来分享一个Java集合去重示例,帮助大家更好地理解...
在Java编程中,List是一种常用的集合类型,它允许我们在列表中存储有序的元素。然而,在处理List时,有时我们需要确保列表中的元素不含有重复项,这时就需要进行去重操作。本文将详细介绍两种Java中对List进行去重的...
Java中List对象列表实现去重或取出及排序的方法 在Java中,对List对象列表实现去重或取出及排序是一种常见的操作。下面将详细介绍相关的方法和实现。 1. 实体类重写equals和hashCode方法 在Java中,想要去重List...
HashSet是一种常见的集合类型,它具有自动去重的特性。我们可以将List中的元素添加到HashSet中,然后从HashSet中取出元素,这样就可以实现List去重。下面是一个简单的示例代码: ```java List<User> users = Lists....
在这个压缩包文件中,"电话号码文件过滤去重小程序(可执行版)"很可能就是一个实现了以上步骤的Java程序,用户可以直接运行它来处理电话号码的去重问题。对于开发者来说,理解这个程序的工作原理并对其进行修改以...
本测试着重探讨了Java集合类中的Set接口实现类(如HashSet)以及List接口实现类(如ArrayList和LinkedList)在进行增、删、改、查操作时的性能差异。 首先,我们来看ArrayList。ArrayList是一个基于数组实现的列表...
Java集合类是Java编程语言中的一种重要数据结构,它可以用来存储和处理大量的数据。在大数据应用场景下,选择合适的集合类对数据的处理效率起到了至关重要的作用。 本文首先对Java集合类的底层存储结构进行了分析,...
"JAVA集合例子"这个资源很可能是包含了一些关于Java集合使用的示例代码,帮助开发者更好地理解和运用这些集合类。集合框架主要由接口和实现类组成,如List、Set、Queue和Map等,它们为不同类型的数据组织提供了不同...
Java 8引入了Stream API,这是一种非常方便的方式来处理List去重。我们可以使用Stream的distinct()方法来删除重复的元素。下面是一个示例代码: ```java public static void main(String[] args) { List<Integer> ...
Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了多种数据结构的实现,使得开发者能够高效地管理和操作数据。本课程主要涵盖了以下几个核心知识点: 1. **集合框架图**: - Java集合框架分为两大类...