当前位置: 首页 > news >正文

理解Stream collect toMap的三个参数

结论:toMap的方法更易读

// 写法1Collectors.toMap(DetailSkuDTO::getSkuId,// 1. 用 skuId 当柜子标签Function.identity(),// 2. 把整个 DetailSkuDTO 对象放进柜子(existing,replacement)->existing// 3. 如果标签撞了,我只要先来的那个(去重))//写法2// 这种方法固定了在key相同的时候放最后一个元素进去,而toMap可以在key相同时做其他操作Map<Long,DetailSkuDTO>skuIdSkuDTOMap=skuDTOList.stream().collect(HashMap::new,(map,item)->map.put(item.getSkuId(),item),HashMap::putAll);

toMap的第三个参数的写法:

  1. 保留新值,覆盖旧值(后来的居上)
(existing,replacement)->replacement

业务场景:流里的数据按时间排过序了,后面的数据是最新的,我想用最新的覆盖老数据。

  1. 保留旧值(先到先得,常用于去重)
(existing,replacement)->existing

业务场景:就像你代码里写的,我只想知道这个 skuId 第一次出现时对应的信息,后面再出现相同 skuId 的我统统不要。这就是去重的标准写法。

  1. 合并两者(新旧我都要)
// 假设 value 是个数字,我想把相同 key 的数字加起来(existing,replacement)->existing+replacement

业务场景:统计词频,或者合并相同 Key 的金额。

  1. 抛出异常(绝不允重复!)
(existing,replacement)->{thrownewIllegalStateException("发现了重复的Key!");}

业务场景:理论上数据不应该有重复,一旦重复说明数据源脏了,必须让程序立刻报错停机,而不是悄悄忽略。

http://www.jsqmd.com/news/655597/

相关文章:

  • class和data class的区别
  • Cursor Pro免费激活:3个核心技术突破与5分钟部署指南
  • 2026年第二届亚洲无人系统与智能控制会议 (USIC 2026)
  • STM32+MPU6050实战:5分钟搞定DMP库移植获取欧拉角(附避坑指南)
  • 如何用Python自动化B站视频上传:BilibiliUploader使用指南
  • 浙江镕达生物:专业离心管生产厂家,全规格无菌离心管适配科研与医疗场景 - 品牌推荐大师1
  • Windows 一键部署 OpenClaw 保姆级教程|10 分钟搭建本地 AI 智能体,全程零配置
  • 使用工具在 Windows 11/10/8/7 中扩展 C 盘的 3 种免费方法
  • STM32实战:手把手教你调试LIN总线通讯(逻辑分析仪抓包与常见故障排查)
  • LLM生成代码准确率仅68%?揭秘头部科技公司内部验证的4层校验机制与SOP模板
  • FINN实战:从Docker环境到FPGA部署的完整指南
  • Android驱动工程师深度解析:从开发实践到面试指南
  • 实验室必备设备推荐:小动物活体成像系统哪家生产商更值得信赖? - 品牌推荐大师
  • BaiduPCS-Go上传性能优化:7个关键配置提升大文件传输效率
  • 如何用Smithbox游戏修改工具打造个性化游戏体验
  • AnimateDiff避坑指南:解决视频闪烁/面部扭曲/生成失败的7个常见问题(附排查流程图)
  • STM32F030 IAP实战:当你的Cortex-M0没有VTOR寄存器时,如何让中断‘听话’?
  • py每日spider案例之某website影视链接获取(无加密)
  • ADC版图实战:从天线错误到DRC清零的惊险调试
  • 3步解锁CaptfEncoder V3:网络安全工具套件的极速上手指南
  • 实验室/小型工业用冷水机,哪家做得比较扎实?求推荐 - 品牌推荐大师
  • 从人工智能愿景到大规模应用智能:Sia达成新里程碑,其代理商店代理数量突破800个
  • 大疆汪滔十年蜕变,一个理想主义者的现实转身
  • 3分钟掌握微信QQ消息防撤回技巧:开源工具RevokeMsgPatcher完整指南
  • 3步掌握英雄联盟回放分析:免费开源工具ROFL播放器完整指南
  • 避开这3个坑,你的ESP32音乐频谱灯效果才能更流畅(FFT采样与灯效优化心得)
  • 男儿立世,当有一身的本领,见贤思齐的谦逊,这句你觉得怎么样
  • 保姆级教程:在Ubuntu 20.04上一步步配置ROS Noetic的move_base和amcl导航栈
  • 2026杭州婚纱摄影实力排行榜八大品牌|备婚新人零踩坑全指南 - 江湖评测
  • CSDN 自动化发布验证 2026-04-16 18:40