jdk8中使用toMap主键冲突 |
您所在的位置:网站首页 › jdk8源码编译异常 › jdk8中使用toMap主键冲突 |
jdk8中使用toMap主键冲突
原创
wx58c8fa5d0b356 2022-01-23 13:45:43 博主文章分类:BUG ©著作权 文章标签 java stream jdk bug 解决方案 文章分类 代码人生 ©著作权归作者所有:来自51CTO博客作者wx58c8fa5d0b356的原创作品,请联系作者获取转载授权,否则将追究法律责任 开始行动,你已经成功一半了,献给正在奋斗的我们 缘起今天线上产品经理新增了一个需求,其中我做了一个操作,将一个集合使用jdk8分解成一个map,结果抛出了异常,是因为map的键冲突了,那我我们就想了,如果我们想保留其中一个而不是直接抛出异常该怎么做呢?原代码如下: Map collect1 = attendanceRecordList.stream() .collect(Collectors.toMap(AttendanceRecord::getPersonId, AttendanceRecord::getRecordTime); 解决网上查询了一下解决方案,其实很简单,Collectors.toMap方法提供了第三个参数,我们可以指定在重复的时候使用新的还是旧的,就是是否需要将旧的覆盖,代码如下: Map collect1 = attendanceRecordList.stream() .collect(Collectors.toMap(AttendanceRecord::getPersonId, AttendanceRecord::getRecordTime, (oldValue, newValue) -> oldValue)); 赞 收藏 评论 分享 举报上一篇:求topK问题的工具类(纯代码) 下一篇:剑指offer | 面试题15:二进制中1的个数 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |