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

【java链式调用流操作】

java链式调用流操作

  • java链式调用流操作
    • 关键点说明
      • 合并逻辑:
      • 优化细节:
      • 性能提升:

java链式调用流操作

在Java中,可以将这两行代码合并成一行,通过链式调用流操作并利用Collectors.collectingAndThen一步完成过滤和去重。以下是合并后的代码:

gongkuangStatusListOld = gongkuangStatusListOld.stream().filter(g -> g.getPscId() != null && !g.getPscId().equals(0L) && g.getUnitcd() != null && !g.getUnitcd().isEmpty()).collect(Collectors.collectingAndThen(Collectors.toMap(obj -> (obj.getScprodId() + obj.getPscId() + obj.getUnitcd()), // 拼接keyobj -> obj, (obj1, obj2) -> obj1 // 重复时保留第一个),map -> new ArrayList<>(map.values()) // 直接提取map的值并转为List));

关键点说明

合并逻辑:

先执行filter:过滤掉pscId为null/0或unitcd为null/空字符串的对象。

再用collectingAndThen:将后续的toMap和转换操作合并为一个步骤,避免多次流操作。

优化细节:

使用 !g.getUnitcd().isEmpty() 替代 !g.getUnitcd().equals(“”),更简洁高效。

通过 map -> new ArrayList<>(map.values()) 直接提取去重后的值并转为List,无需额外调用stream()。

性能提升:

原始代码遍历了两次流(先过滤后去重),合并后只需一次流操作,效率更高。

http://www.dtcms.com/a/263862.html

相关文章:

  • Python实现NuScenes数据集可视化:从3D边界框到2D图像的投影原理与实践
  • mac部署dify
  • 笔记/计算机网络
  • 【数据结构】 排序算法
  • beego打包发布到Centos系统及国产麒麟系统完整教程
  • 【文件读取】open | with | as
  • 实体类JavaBean
  • 到底什么是“数字化”?数字化的本质是什么?
  • 从输入到路径:AI赋能的地图语义解析与可视化探索之旅(2025技术全景)
  • 边截图边操作?试试 Snipaste 的浮动贴图功能
  • adc模数转换器
  • Gartner《Choosing Event Brokers to Support Event-DrivenArchitecture》心得
  • OSE3.【Linux】练习:编写进度条及pv命令项目中的进度条函数
  • Postman - API 调试与开发工具 - 标准使用流程
  • 搜索与回溯算法(基础算法)
  • 华为交换机堆叠与集群技术深度解析附带脚本
  • Golang的并发编程实践总结
  • 【pathlib 】Python pathlib 库教程
  • 成都芯谷金融中心文化科技园:打造区域科技活力
  • nginx配置websocket
  • 用java,把12.25.pdf从最后一个点分割,得到pdf
  • Elastic 构建 Elastic Cloud Serverless 的历程
  • CertiK《Hack3d:2025年第二季度及上半年Web3.0安全报告》(附报告全文链接)
  • 61、【OS】【Nuttx】【构建】向量表
  • Redis-7.4.3-Windows-x64下载安装使用
  • 浅谈Docker Kicks in的应用
  • ‌Webpack打包流程
  • 为什么时序数据库IoTDB选择Java作为开发语言
  • Milvus docker-compose 部署
  • t检验​、​z检验、χ²检验中的P值