我正在尝试使用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));
这给了我列表中所有元素的总和,并且所有键都正确。但是我尝试过滤并仅在类型代码大于10时才获取总和。
任何人都可以建议如何使用typeCode过滤上述流吗?
holdtom
相关分类