通过树形图中的键获取值的总和

问题描述 投票:0回答:1

有一个流List>如何获取TreeMap? BigDecimal 按 key 求和。 列表>列表; list.stream.flatMap(Collection::stream).collect(....

我不知道该怎么办

java api stream bigdecimal treemap
1个回答
0
投票

你可以尝试这样的事情:

List<TreeMap<Key, BigDecimal>> data = ...;
Map<Key, BigDecimal> result = data.stream()
    .flatmap(tree ->  tree.entrySet().stream())
    .collect(
        Collectors.toMap(
            e -> e.getKey(), 
            e -> e.getValue(), 
            (a, b) -> a.add(b) // BigDecimal with the same key will be summed.
        )
    );
© www.soinside.com 2019 - 2024. All rights reserved.