【发布时间】:2017-02-12 13:31:33
【问题描述】:
我有一张如下形式的地图:
Map<Integer, Map<String,Double>> START
令 INNER 为内部映射,即
Map<String,Double>
例如,我想在新的地图中减少 START 地图
Map<Integer, Double> END
它们具有相同的键,但具有不同的值。 特别是,对于每个键,我希望新的 Double 值是对应键的 INNER 映射中值的总和。
如何使用 JAVA 8 的 STREAM 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) |
| | |
--------------------------------
【问题讨论】:
-
为什么你的内部地图的键是字符串?可以提供样图吗?
-
我想使用 STREAM API,因为我是新手,我需要更好地理解它。
-
你尝试了什么?向我们展示您的代码。
-
@talex 关于 Stream API,我还没有写任何代码。在旧代码中,我遍历哈希映射,逐键执行求和运算。现在,我的目标是通过使用 Stream 来达到相同的结果,而不是手动编写所有代码
-
@Fab 你为什么不自己试试呢?如果您使用别人为您编写的代码,您将永远学不会任何东西。
标签: java hashmap java-8 java-stream