【发布时间】:2021-06-17 05:04:17
【问题描述】:
输入:产品列表。
产品对象:id,productType,price,desc
输出:地图
key是产品类型,value是价格的总和
【问题讨论】:
-
了解更多关于how to ask a good question的信息。
-
为什么输出的价格总和是String?
输入:产品列表。
产品对象:id,productType,price,desc
输出:地图
key是产品类型,value是价格的总和
【问题讨论】:
假设价格是整数并且Product 类中提供了适当的getter,Collectors.groupingBy 和Collectors.summingInt 的组合有助于解决此任务。
Map<String, Integer> totalPriceByType = products.stream()
.collect(Collectors.groupBy(
Product::getProductType,
Collectors.summingInt(Product::getPrice)
));
【讨论】:
String 值,则始终可以在下游执行 collectingAndThen。