有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何从Java8中的对象列表中获取两个属性的乘积

我有一张物品清单,上面有价格和数量。我希望得到总和,即对象列表中所有(产品价格*产品数量)的总和。在Java8中实现这一点的最佳方法是什么

我可以通过list..stream().map(Product::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add));流式列表获得所有产品价格的总和,但我不确定的是如何获得价格和数量的乘积


共 (1) 个答案

  1. # 1 楼答案

    map计算乘积,然后用reduce求和:

    list.stream()
        .map(p -> p.getPrice().multiply(p.getQty()))
        .reduce(BigDecimal.ZERO, BigDecimal::add);