jdk8+List数据根据某个属性去重

jdk8+List数据根据某个属性去重,第1张

场景:由于特定查询,将主键重复的但是其他部分属性的对象数据进行了合并,但是想要去重掉主键一样的数据。

实现方法:

public static  Predicate distinctByKey(Function keyExtractor) {
    Map seen = new ConcurrentHashMap<>();
    return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}

调用实现(伪代码):

List demands=xxxxMapper.selectList();
List otherDemands=xxxxMapper.selectList();

demands.addAll(otherDemands);

//上面数据有可能存在重复数据,去重

demands= demands.stream().filter(distinctByKey(b->b.getItemId())).collect(Collectors.toList());

测试好用

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/919305.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存