友链提交
请认真填写以下信息,谢谢!

博客信息

网站名称:楠笙

网站地址:https://blog.nanshengwx.cn/

Logo链接:https://blog.nanshengwx.cn/upload/logo.png

描述:记录生活与技术,空谈误国,实干兴邦

RSS地址:https://blog.nanshengwx.cn/rss.xml

(请填写完整的网址,例如:https://www.example.com)
(贵站展示本站链接的页面地址,一般是友链页面,填写后将自动验证友链关系有效性)
(用于抓取文章)
(用于接收通知)

这个人很神秘,什么都没有写

发现一个list对象根据指定字段去重的代码,因为没太理解,所有就不写文章写在这里记录了

单独的方法

static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
    Map<Object,Boolean> seen = new ConcurrentHashMap<>();
    //putIfAbsent方法添加键值对,如果map集合中没有该key对应的值,则直接添加,并返回null,如果已经存在对应的值,则依旧为原来的值。
    //如果返回null表示添加数据成功(不重复),不重复(null==null :TRUE)
    return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}

使用

List<PlantEExam> newList = new ArrayList<>();
plantEExams.stream().filter(distinctByKey(PlantEExam::getExamId)) //filter保留true的值
        .forEach(newList::add);

plantEExams是需要去重的集合

楠笙の博客 成长日记

发布日期:

分享海报设置

下载海报
返回

欢迎来到楠笙的站点,为您导航全站动态

36 文章数
7 分类数
72 评论数
10标签数

热门文章