有什么方法可以提取Map的值吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有什么方法可以提取Map的值吗?相关的知识,希望对你有一定的参考价值。
我试图从下面的数据类型中提取值。Map<String, Map<String, Integer>>,
样本数据是这样的。
- ("aaa"。地图("bbb",333))
- ("ddd", Map("ccc",444))
我想要的结果
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);
以上是关于有什么方法可以提取Map的值吗?的主要内容,如果未能解决你的问题,请参考以下文章