如何在 forEach 中累积?这是我的代码:
public Double accumulate() {
Double accum = 0d;
numbers.stream().forEach(p-> {
// if condition
accum = accum + numbers.getAmount();
// else
accum = accum + numbers.getAmountWithInterest();
});
return accum;
}
也许我应该使用 map 而不是 forEach,我尝试了几件事,但没有奏效。谢谢
最佳答案
我认为在使用 lambda 时产生副作用不是一个好主意。这是混合函数式编程和命令式编程的一种糟糕方式。你可以通过
numbers.stream().mapToInt(p-> {
// if condition
return numbers.getAmount();
// else
return numbers.getAmountWithInterest();
}).sum();
关于java - 在 forEach Java 8 里面积累,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65364933/