gpt4 book ai didi

java - 如何使用 Double 数据类型减少流

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:05:03 27 4
gpt4 key购买 nike

我有一个 ArrayList 用户定义对象 employee as

class Employee {
String name;
Double age;
Double salary
}

我正在尝试通过以下代码将上面的列表缩减为一个流

Double totalSalary = empList.stream().parallel().filter(x-> x.getname().equalsIgnoreCase("XYZ")).reduce(0,(subTotal, sal)-> subTotal + dp.getSalary(), DoubleExpression::add);

这不会编译并给出错误。我怎样才能实现我想要的目标?

最佳答案

首先,您必须将 Employee 对象映射到双倍薪水。然后只有你可以做减少步骤。此外,归约步骤采用标识元素和二元运算符。但是你在那里传递了三个参数,这也是有缺陷的。

double totalSalary = empList.stream()
.filter(x -> x.getName().equalsIgnoreCase("XYZ"))
.mapToDouble(Employee::getSalary)
.sum();

这是等效的减少。请注意,0 是此归约的标识元素。

double totalSalary = empList.stream()
.filter(x -> x.getName().equalsIgnoreCase("XYZ"))
.mapToDouble(Employee::getSalary)
.reduce(0, Double::sum);

关于java - 如何使用 Double 数据类型减少流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58355180/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com