【发布时间】:2019-03-16 21:27:51
【问题描述】:
我正在尝试使用 java 8 中的流从地图中获取所有值的总和。以下是我拥有的集合:
Map<BigDecimal, List<Object>> map = ...... //some elements in this map
假设对象具有以下属性:
BigDecimal previousAmount;
int typeCode;
我正在尝试获取所有键的列表中每个对象的所有 previousAmount 的总和。以下是我想出的:
BigDecimal previousAmt = map.values().stream().flatMap(List::stream)
.map(Object::previousAmount).reduce(BigDecimal.ZERO, (a, b) -> a.add(b));
这给了我列表中所有元素的总和以及所有键的正确值。但我试图仅在 typeCode 大于 10 时过滤并获得总和。
谁能建议如何使用 typeCode 过滤上述流?
【问题讨论】:
标签: java collections java-8 java-stream