You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java Stream API重写双层循环计算薪资总和

可以用Java Stream API实现该薪资总和计算

先给出完整的Stream实现代码:

public double getCostsOfEmployeesSalaries() {
    return accounting.getEmployeeCards().values()
            .stream()
            .flatMap(employeeCard -> employeeCard.getReports().values().stream())
            .mapToDouble(Report::getSalary)
            .sum();
}

代码逻辑拆解:

  • 第一步:从accounting中取出所有EmployeeCard的集合,通过stream()转为Stream流
  • 第二步:使用flatMap将每个EmployeeCard对应的Report集合“平铺”成单个Report元素的流,避免出现嵌套的Stream结构
  • 第三步:通过mapToDouble将每个Report对象转换为对应的薪资数值,得到DoubleStream类型的流
  • 第四步:调用sum()方法直接计算所有薪资的总和,无需手动维护累加变量

这个实现和你原来的双层循环逻辑完全等价,而且代码更简洁,减少了手动操作集合和累加值的冗余代码。

内容的提问来源于stack exchange,提问作者domartynov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:33:23