小编Cur*_*ind的帖子

Java流乘法并返回乘法之和

目前我正在使用 for 循环来执行简单的乘法并对获得的值求和:

BigDecimal serviceOrderTotal = new BigDecimal(0.00);
for (int i = 0; i < orderPresenter.getServiceList().size(); i++) {
    System.out.println("orderPresenter.getServiceList().get(i).getServiceValue()");
    System.out.println(orderPresenter.getServiceList().get(i).getServiceValue());
    System.out.println("orderPresenter.getServiceList().get(i).getServiceQuantity()");
    System.out.println(orderPresenter.getServiceList().get(i).getServiceQuantity());
    serviceOrderTotalold = serviceOrderTotal.add(orderPresenter.getServiceList().get(i).getServiceValue().multiply(orderPresenter.getServiceList().get(i).getServiceQuantity()));
}
Run Code Online (Sandbox Code Playgroud)

我需要使用流做同样的事情。对于每个 orderPresenter,我需要乘以数量值并返回这些值的总和。

forEach如果我在 中使用 a 来执行此操作stream,则无法返回该值,因为该变量必须是finalforEach 内部使用的原子变量。我最终对此无济于事:

BigDecimal serviceOrderTotal = new BigDecimal(0.00);
serviceOrderTotal = orderPresenter.getServiceList().stream()
               .forEach(servicePresenter -> {
                    System.out.println("orderPresenter.getServiceValue()");
                    System.out.println(orderPresenter.getServiceValue());
                    System.out.println("orderPresenter.getServiceQuantity()");
                    System.out.println(orderPresenter.getServiceQuantity());
                    serviceOrderTotalold = serviceOrderTotalold.add(orderPresenter.getServiceValue().multiply(orderPresenter.getServiceQuantity()));
                });
Run Code Online (Sandbox Code Playgroud)

java bigdecimal java-stream

4
推荐指数
1
解决办法
3280
查看次数

标签 统计

bigdecimal ×1

java ×1

java-stream ×1