我试图从下面的数据类型中提取值。Map<String, Map<String, Integer>>,
样本数据是这样的。
我想要的结果
HashMap
key : bbb, value : 333
key : ccc, value : 444
我试过了
mapData.values().stream()
.collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue))
但却失败了。有没有什么好的方法可以在嵌套的Map中提取value部分。Map
?
你需要 flatMap
您的内部地图的条目 -
Map<String, Integer> output = map.values().stream()
.flatMap(m -> m.entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
简单的方式就是。
Map<String,Integer> map = new HashMap<>();
mapData.values().forEach(map::putAll);
或者
mapData.values().stream().collect(HashMap::new, HashMap::putAll,Map::putAll);