`
satan_conjuror
  • 浏览: 19070 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java集合去重处理

    博客分类:
  • java
阅读更多

这里分享下我做过的集合去重处理!顾名思义就是把一个集合处理了,然后得到一个新的集合,这个集合里面的元素是没有重复的!下面就是贴出的代码啦!

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

 反正我现在的积累是看不太懂的!哭

2
3
分享到:
评论
2 楼 satan_conjuror 2016-05-09  
3Q!
1 楼 酷的飞上天空 2016-04-23  
List<String> list
// 去重
list =  new ArrayList<String>(new HashSet<String>(list));

相关推荐

    Java去重txt文件内容(按行)

    总的来说,这个Java项目展示了如何利用Java 8的Stream API和并行流特性来高效地处理文本文件,实现行级别的去重功能。这种技术对于处理大量文本数据,尤其是需要进行清洗和预处理的情况非常有用。在实际应用中,可以...

    java jsonarray 踢重 去重操作

    在Java中处理JSON数据时,经常需要对JSON数组进行各种操作,其中去重是一个常见的需求。本文将详细介绍如何使用Java对`JSONArray`进行去重操作,并深入探讨背后的原理和技术细节。 ### JSON与Java JSON...

    Java数组去重 集合List去重的常用方法总结

    ### Java数组去重与List集合去重的常用方法总结 #### 一、Java数组去重方法 在实际的开发工作中,经常会遇到需要处理数组中重复元素的问题。下面将详细介绍两种常用的数组去重方法。 ##### 方法一:For双循环法 ...

    List 集合去重的3种方法.docx

    在Java编程中,处理列表(List)集合的去重是一个常见的任务,特别是在处理大量数据时。上述描述中提到了在实际开发中遇到的问题,即如何在一个没有主键的集合对象中,根据特定条件(如业务需求)筛选出不重复的元素...

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

    【Java中List集合对象去重及按属性去重的8种方法】 在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性...

    合并数组并且转为有序去重集合

    合并数组并且转为有序去重集合,我看到很多资源博客,百度都弄的很繁琐,所以自己总结描述了一下

    java集合习题及答案

    ### Java集合基础习题解析及答案 #### 题目一:统计子字符串在字符串中的出现次数 **题目描述:** 编写一个Java程序,定义一个方法`getCount`,该方法接收两个参数:一个字符串`str`和一个子字符串`s`,返回`s`在`...

    java list根据对象的某个属性的值去重

    java list根据对象的某个属性的值去重,java list根据对象的某个属性的值去重java list根据对象的某个属性的值去重

    java去除集合中重复元素示例分享 java去除重复

    Java集合去重示例分享 Java集合去重示例是Java编程中常见的问题之一。在实际开发中,我们经常需要从集合中去除重复元素,以保证数据的唯一性和正确性。今天,我们来分享一个Java集合去重示例,帮助大家更好地理解...

    java list去重操作实现方式

    在Java编程中,List是一种常用的集合类型,它允许我们在列表中存储有序的元素。然而,在处理List时,有时我们需要确保列表中的元素不含有重复项,这时就需要进行去重操作。本文将详细介绍两种Java中对List进行去重的...

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

    Java中List对象列表实现去重或取出及排序的方法 在Java中,对List对象列表实现去重或取出及排序是一种常见的操作。下面将详细介绍相关的方法和实现。 1. 实体类重写equals和hashCode方法 在Java中,想要去重List...

    电话号码去重的java实现,小工具你值得拥有

    在这个压缩包文件中,"电话号码文件过滤去重小程序(可执行版)"很可能就是一个实现了以上步骤的Java程序,用户可以直接运行它来处理电话号码的去重问题。对于开发者来说,理解这个程序的工作原理并对其进行修改以...

    java集合类的效率测试

    本测试着重探讨了Java集合类中的Set接口实现类(如HashSet)以及List接口实现类(如ArrayList和LinkedList)在进行增、删、改、查操作时的性能差异。 首先,我们来看ArrayList。ArrayList是一个基于数组实现的列表...

    大数据视域下Java集合应用研究.pdf

    Java集合类是Java编程语言中的一种重要数据结构,它可以用来存储和处理大量的数据。在大数据应用场景下,选择合适的集合类对数据的处理效率起到了至关重要的作用。 本文首先对Java集合类的底层存储结构进行了分析,...

    JAVA集合例子

    "JAVA集合例子"这个资源很可能是包含了一些关于Java集合使用的示例代码,帮助开发者更好地理解和运用这些集合类。集合框架主要由接口和实现类组成,如List、Set、Queue和Map等,它们为不同类型的数据组织提供了不同...

    简述Java List去重五种方法

    Java 8引入了Stream API,这是一种非常方便的方式来处理List去重。我们可以使用Stream的distinct()方法来删除重复的元素。下面是一个示例代码: ```java public static void main(String[] args) { List&lt;Integer&gt; ...

    java集合课程3.docx

    Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了多种数据结构的实现,使得开发者能够高效地管理和操作数据。本课程主要涵盖了以下几个核心知识点: 1. **集合框架图**: - Java集合框架分为两大类...

Global site tag (gtag.js) - Google Analytics