如何从 Java 8 中的对象列表中获取两个属性的乘积
How to get the product of two properties from a list of objects in Java 8
我有一个包含价格和数量的物品清单。我希望获得总和,即对象列表中所有(产品价格 * 产品数量)的总和。 Java 8 中最好的方法是什么?
我可以通过 list..stream().map(Product::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
流式传输列表获得所有产品价格的总和,但我不确定如何获得价格和数量的乘积。
用map
计算乘积,然后用reduce
求和:
list.stream()
.map(p -> p.getPrice().multiply(p.getQty()))
.reduce(BigDecimal.ZERO, BigDecimal::add);
我有一个包含价格和数量的物品清单。我希望获得总和,即对象列表中所有(产品价格 * 产品数量)的总和。 Java 8 中最好的方法是什么?
我可以通过 list..stream().map(Product::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
流式传输列表获得所有产品价格的总和,但我不确定如何获得价格和数量的乘积。
用map
计算乘积,然后用reduce
求和:
list.stream()
.map(p -> p.getPrice().multiply(p.getQty()))
.reduce(BigDecimal.ZERO, BigDecimal::add);