Java8:将旧的 ForEach 方法转换为 Lambda/Stream

4

在经过几个小时的绝望搜索后,我决定提出一个问题。我真的没有找到任何关于如何将这种老式编码方式转换为流/lambda 的东西。

也许有人能够向我解释一下。谢谢。

public double getSum() {
    double sum = 0;
    for (Product product : productList) {
        sum += product.getPrice();
    }
    return sum;
}

4
顺带一提,最好不要使用双精度浮点数(double)或单精度浮点数(float)来表示货币。请参考此链接:https://dev59.com/h2865IYBdhLWcg3wnP2a - dnault
1个回答

3
您可以使用以下方法:
double sum = productList.stream().mapToDouble(product -> product.getPrice()).sum();

2
或者,使用方法引用而不是lambda表达式:mapToDouble(Product::getPrice) - dnault
1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Tagir Valeev
@Tagir Valeev:使用“double”类型,即使使用相同的代码也可以始终获取差异。 - Holger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接