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 阅读 49 次 更新于 2025-10-30 04:26:04 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

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