1.如果你想根据对象的一个属性进行去重,可以使用Java 8中的Stream api。具体步骤如下: 实现一个自定义函数,该函数将用于确定两个对象是否相等,例如: public static Predicate distinctByPro
实现一个自定义函数,该函数将用于确定两个对象是否相等,例如:
public static Predicate distinctByProperty(Function super T, Object> keyExtractor) { Map
这个函数接受一个Function对象作为参数,该函数将从对象中提取唯一标识属性,并使用ConcurrentHashMap来确定是否已经处理过该属性值。
2.现在你可以使用这个函数来进行去重了,例如:
List myList = ... // Your list of objectsList distinctList = myList.stream().filter(distinctByProperty(MyObject::getSomeProperty)).collect(Collectors.toList());
这个代码将对myList进行去重,只保留唯一的对象(即,他们的某个属性相同)。其中,getSomeProperty是MyObject类中的一个方法,它返回用于去重的属性
ArrayListlist1=list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()->newTreeSet<>(Comparator.comparing(BasicSectionCfg::getPamKey))),ArrayList::new));
这段代码使用Java 8中的流API将一个ArrayList
具体来说,大致可以分为以下几步:
最终,这段代码的作用就是将list中的重复元素去重,并按照BasicSectionCfg对象的pamKey属性进行排序,得到一个新的ArrayList集合。
来源地址:https://blog.csdn.net/sunyanhu_1/article/details/131469357
--结束END--
本文标题: java List<对象> 根据对象的一个属性进行去重
本文链接: https://www.lsjlt.com/news/388127.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0