List集合对象去重及按属性去重的8种方法-java基础总结系列第六篇

一、集合元素整体去重 使用Set去重:先将List数据放入Set,因为Set具有去重的功能,再将Set转为List。但这种方法会改变原有的List元素顺序。使用Stream去重:使用stream方法将集合转换成流,然后利用distinct方法进行去重,最后将Stream流collect收集为List。利用Set的add方法去重:遍历List,利用set.add方法,如...
List集合对象去重及按属性去重的8种方法-java基础总结系列第六篇
List集合对象去重及按属性去重的8种方法:
一、集合元素整体去重
使用Set去重:
先将List数据放入Set,因为Set具有去重的功能,再将Set转为List。但这种方法会改变原有的List元素顺序。使用Stream去重:
使用stream方法将集合转换成流,然后利用distinct方法进行去重,最后将Stream流collect收集为List。利用Set的add方法去重:
遍历List,利用set.add方法,如果T元素已经存在集合中,就返回false。根据这个返回值判断元素是否重复,如果不重复就放入一个新的List中。使用List的contains方法去重:
遍历List,在向新的List添加数据的时候判断这个数据是否已经存在于新List中,如果存在就不添加。二、按照集合元素对象属性去重
使用TreeSet和Comparator接口:
为TreeSet实现Comparator接口,比较指定属性,从而实现按属性去重。使用Map进行去重:
创建一个Map,将需要依据的属性作为键,对象本身作为值。由于Map的键是唯一的,因此可以实现按属性去重。之后可以从Map中提取值来构建去重后的List。使用Java 8的Collectors.toMap:
利用Collectors.toMap收集器,将List转换为Map,同样以需要依据的属性作为键,对象本身作为值。这种方法简洁且高效。组合多种属性进行去重:
如果需要按多个属性进行去重,可以创建一个包含这些属性的复合键,然后将复合键作为Map的键。或者在Comparator中实现多个属性的比较逻辑。注意:上述方法中,使用Set和Stream去重的方法适用于对List中的简单类型或已正确实现equals和hashCode方法的对象进行去重。对于按属性去重,通常需要对象具有相应的getter方法以访问属性,或者通过其他方式获取属性值进行比较。
2025-03-31
mengvlog 阅读 34 次 更新于 2025-09-08 05:46:51 我来答关注问题0
  •  文暄生活科普 List集合对象去重及按属性去重的8种方法-java基础总结系列第六篇

    第一种方法:先将List数据放入Set,因为Set数据结构本身具有去重的功能,再将Set转为List之后就是去重之后的结果。这种方法在去重之后会改变原有的List元素顺序,因为HashSet本身是无序的,而TreeSet排序也不是List种元素的原有顺序。第二种方法:使用stream方法将集合转换成流,然后distinct去重,最后将Str...

  • List集合对象去重及按属性去重的8种方法:一、集合元素整体去重 使用Set去重:先将List数据放入Set,因为Set具有去重的功能,再将Set转为List。但这种方法会改变原有的List元素顺序。使用Stream去重:使用stream方法将集合转换成流,然后利用distinct方法进行去重,最后将Stream流collect收集为List。利用Set的add...

  •  深空见闻 list中对象多个属性去重

    在Java中,对于list中对象根据多个属性进行去重,可以采取以下几种方法:使用contains方法和简化版实体类:这种方法首先要求创建一个简化版的实体类,该类只包含需要进行去重比较的属性。接着,遍历原始的list,对于每一个元素,通过创建一个简化版实体类的实例,并使用contains方法判断新list中是否已经存在具有...

  •  文暄生活科普 用Stream流操作List集合去除重复对象的重复属性

    日常开发中,处理数据库查询结果时,可能需要去除重复对象的重复属性。例如,统计每个userName的出现次数,通过Stream的filter方法筛选出出现次数大于1的值,并将这些值放入一个新的list集合中。接下来,遍历这个集合,将所有userName与重复userName相等的对象从原始集合中移除。最后,将处理过后的对象重新添加回...

  •  猪八戒网 List 去重的 6 种方法,这个方法最完美!

    方法1:contains判断去重(有序) 要进行数据去重,我们首先想到的是新建一个集合,然后循环原来的集合,每次循环判断原集合中的循环项,如果当前循环的数据,没有在新集合中存在就插入,已经存在了就舍弃,这样当循环执行完,我们就得到了一个没有重复元素的集合了,实现代码如下:publicclassListDistinctExample{publicstaticvoid...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部