java8 List根据某个字段去重

2023-11-19

1、使用toCollection和TreeSet去重

TreeSet内部使用的是TreeMap,使用指定Comparator比较元素,如果元素相同,则新元素代替旧元素。

List<TalentPlanStudentEntity> studentList = relatePlanStudentList.stream()
                    .collect(Collectors.collectingAndThen(Collectors.toCollection(
                            () -> new TreeSet<>(Comparator.comparing(TalentPlanStudentEntity::getUserId))), ArrayList::new));
         

2、使用Collectors.toMap去重

Collectors.toMap需要使用三个参数的版本,前两个参数一个是keyMapper函数一个是valueMapper函数的,第三个参数BinaryOperator函数接口。BinaryOperator函数接收两个参数,一个oldValue,一个newValue。用于当key重复时的数据处理

List<TalentPlanStudentEntity> studentList = new ArrayList<>(relatePlanStudentList.stream()
                    .collect(Collectors.toMap(TalentPlanStudentEntity::getUserId, Function.identity(), (oldValue, newValue) -> oldValue))
                    .values());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java8 List根据某个字段去重 的相关文章

随机推荐

  • 设置HTML为桌面壁纸

    我们程序员每天都面对着静态或动态壁纸 但是谁不想拥有一个炫酷的html桌面呢 先看一下效果 下面是几例使用html当桌面进行交互的实际效果 1 桌面可以玩魔方 2 飞机跟随鼠标移动 3 火箭跟随鼠标移动 4 可以通过调节参数的星空 英文自查
  • springboot-rocketmq日志rocketmq_client.log问题

    问题描述 springboot配置rocketmq后 会写入日志到rocketmqlogs目录下的rocketmq client log文件中 且日志过于庞大 解决 1 启动类增加代码 System setProperty ClientLo
  • 因果推断dowhy之-ihdp数据集上的案例学习

    0x01 案例背景 IHDP Infant Health and Development Program 就是一个半合成的典型数据集 用于研究 专家是否家访 对 婴儿日后认知测验得分 之间的关系 原数据集是基于随机控制实验进行的 因此可以获
  • matlab 曲线拟合插值问题

    引言 polyfit 和polyval 经常用于多项式拟合和插值取点 但不能乱用 原理 polyfit根据一些列的点去拟合成一个多项式 多项式的阶次可以设定 假设对于某一小段数据 如图 现在想根据当前点的变化趋势拟合多项式并插值 使用pol
  • 源码漏洞思路笔记

    根据文件名称判断内容 部分文件没有固定的名称和位置 取决于编写网站人员 以下是一般情况 admin 后台路径 data 处理数据 install 安装 menber 会员中心 temple 模板文件 bak文件 数据库备份 bak是back
  • SphereEx苗立尧:云原生架构下的Database Mesh研发实践

    嘉宾 苗立尧 2022年7月27日 在由开放原子开源基金会主办的 2022开放原子全球开源峰会 上 SphereEx Mesh实验室负责人 云原生技术专家苗立垚带来了 云原生架构下的Database Mesh的研发实践 的主题演讲 从云原生
  • bean的有效范围和生命周期(scope)

    scope 的取值范围给出了bean的生命周期 存活时间 即scope 取值决定了Tomcat服务器分配给用户的 bean 的有效范围和生命周期 因此需要理解 scope取值的具体意义 下面就JSP动作标记useBean 中scope取值的
  • conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

    conda 无法将 conda 项识别为 cmdlet 函数 脚本文件或可运行程序的名称 请检查名称的拼写 如果包括路径 请确保路径正确 然后再试一次 解决办法 没有添加系统变量 所以系统根本识别不了conda命令 找不到位置 添加以下系统
  • java fop,使用ApacheFOP从Java中的XML生成PDF

    I am trying to generate on the fly PDF reports from Java objects I have not been able to find many examples of this so I
  • Hbase的入门心得:

    Hbase的入门心得 在了解了Hadoop的大家族的核心成员HDFS MapReduce以及资源管理器YARN后 HBase又是一个新颖的技术出现 在超人学院吴超老师的视频里介绍到 HBase Hadoop Database是一个分布式的
  • 图智能在反洗钱方向的应用实践丨Fabarta 技术专栏

    导读 依托于 Fabarta 在金融行业应用图技术解决反洗钱业务领域问题成功经验 将图智能在反洗钱方向的应用实践进行总结并分享 主要包括以下几个方面 全文目录 反洗钱业务业务背景 当前反洗钱的业务流程及痛点 如何应用图智能进行反洗钱分析 案
  • Seaborn 入门

    一 Seanborn Seaborn是基于Matplotlib的Python数据可视化库 对matplotlib进行二次封装而成 它提供了一个高级界面 用于绘制引人入胜且内容丰富的统计图形 只是在Matplotlib上进行了更高级的API封
  • IOS高访新浪微博界面(讲解如何自定义UITableViewCell,处理@#链接 特殊字符)

    在开发过程中 有好多应用都会嵌入新浪微博的界面 今天整理一下代码 首先看界面效果图 Demo下载地址 http download csdn net detail rhljiayou 6760745 思路 首先放一个UITableView 自
  • 解决Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception is java.lang.NullPointer

    目录 1 背景 2 问题原因 3 解决办法 方法一 修改配置 方法二 将swagger切换成springdoc 1 背景 升级springboot版本从2 2到2 6 6后 同时使用swagger3 启动后报错 Failed to star
  • RGB颜色表示

    光的色散 牛顿的光的色散实验让人们了解了白光光是由单色光组成的 当白光通过三棱镜就能产生光的色散 分解后白光是由红 橙 黄 绿 蓝 靛 紫等各种色光组成的 而红 绿 蓝则是光的三原色 RGB解释 RGB色彩模式是工业界的一种颜色标准 是通过
  • .NET的第三方软件问题

    很多时候 NET是我的首选平台 它通用 一致 工具齐全 是的 我们对于C 的创新很兴奋 并且时不时会有很好的技术出现 当前的Blazor或者久远的silverlight 但是 如果一个NB的开发者说 net是给在银行工作的人用的 好吧 他们
  • Java equals方法

    对于Object的 equals方法 他比较的是对象是否为同一个对象 如果继承了Object的equals方法没有重写 那么比较的是对象的地址 而String类的equals方法比较的是内容
  • Python人一定要知道的13个代码片段(超有用,拒绝标题党!)

    Python人一定要知道的13个超有用的代码片段 这些日常片段将优化你的Python编程代码 当你每天使用Python来解决挑战 开发算法和构建应用程序时 你会发现自己在不断地重复一些任务 这就是为什么为通常执行的任务准备一些代码片段是一个
  • 华为机试HJ13 句子逆序

    HJ11 数字颠倒 Python 题目 解题思路 代码 结果 题目 解题思路 1 split后倒转 转list 再用空格间隔后输出 列表倒序用reversed 要再转list 代码 split后倒转 转list 再用空格间隔后输出 prin
  • java8 List根据某个字段去重

    1 使用toCollection和TreeSet去重 TreeSet内部使用的是TreeMap 使用指定Comparator比较元素 如果元素相同 则新元素代替旧元素 List