使用Java8流API减少hashmap映射
我有一张以下格式的地图:
Map<Integer, Map<String,Double>> START
设INNER为内部映射,即
Map<String,Double>
例如,我想在一个新的地图中减少起始地图
Map<Integer, Double> END
它们具有相同的键,但值不同。 特别是,对于每个键,我希望新的Double值是对应键的内部映射中的值之和
我如何通过使用Java8的流API来实现这一点
谢谢大家
编辑:创建一个示例地图
------------------------------
| | 2016-10-02 3.45 |
| ID1 | 2016-10-03 1.23 |
| | 2016-10-04 0.98 |
------------------------------
| | 2016-10-02 1.00 |
| ID2 | 2016-10-03 2.00 |
| | 2016-10-04 3.00 |
------------------------------
e我想要一张新地图,如下所示:
--------------------------------
| | |
| ID1 | SUM(3.45,1.23,0.98) |
| | |
--------------------------------
| | |
| ID2 | SUM(1.00,2.00,3.00) |
| | |
--------------------------------
# 1 楼答案
这应该是一个很好的例子:
输出将是
{1=5.66, 2=6.0}
,它所做的一切就是获取映射的入口集,获取它的流,并收集内部映射值的新映射和# 2 楼答案
它会对你有用的