如何在 forEach 中累积?这是我的代码:
public Double accumulate() {
Double accum = 0d;
numbers.stream().forEach(p-> {
// if condition
accum = accum + numbers.getAmount();
// else
accum = accum + numbers.getAmountWithInterest();
});
return accum;
}
Run Code Online (Sandbox Code Playgroud)
也许我应该使用 map 而不是 forEach,我尝试了几件事,但没有奏效。谢谢
Ham*_*riZ 12
我认为在使用 lambda 时产生副作用不是一个好主意。这是混合函数式编程和命令式编程的一种糟糕方式。你可以通过
numbers.stream().mapToInt(p-> {
// if condition
return numbers.getAmount();
// else
return numbers.getAmountWithInterest();
}).sum();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
143 次 |
最近记录: |