【问题标题】:How to get the product of two properties from a list of objects in Java 8如何从 Java 8 中的对象列表中获取两个属性的乘积
【发布时间】:2021-03-08 06:45:41
【问题描述】:

我有一个包含价格和数量的物品清单。我希望得到总和,这是对象列表中所有(产品价格 * 产品数量)的总和。 Java 8 中最好的方法是什么?

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

【问题讨论】:

  • 请提供完整的、工作简化的代码示例
  • 1:创建方法getTotal返回产品(价格*数量)并在上面的代码中使用;或 2:使用 p -> p.getPrice().multiply(p.getQty()) 而不是 Product::getPrice

标签: java list java-stream bigdecimal


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多