java - Map 中的 Java 流
问题描述
Map<Integer,String> maper = new HashMap<>();
maper.put(1, "Naveen");
Map<Integer,Map<Integer,String>> map1 = new HashMap<>();
map1.put(1, maper);
Map<Integer,Map<Integer,Map<Integer,String>>> mapOne = new HashMap<>();
mapOne.put(1, map1);
如何使用 Java 8 中的流从 mapOne 获取字符串值?
解决方案
您的问题的简单答案是:
mapOne.get(1).get(1).get(1)
其中 eachget
获取内部映射,或者在 last 的情况下get
获取最终值。
既然您提到了流,我想您可能是想问如何展平嵌套地图,以便您可以将最内层地图中的字符串作为集合获取。在这种情况下,您应该使用flatMap
. flatMap
嵌套 N 层深度的地图需要N 次调用。
mapOne.values().stream()
.flatMap(x -> x.values().stream())
.flatMap(x -> x.values().stream())
.collect(Collectors.toList()) // or toSet()
推荐阅读
- c# - C# - 如何限制在多个 OU 内使用特定部门的 DirectorySearcher 搜索用户?
- javascript - 展平嵌套对象时提高 Big-O 值
- javascript - 如何使用按钮将一个 JS 页面链接到另一个 JS 页面
- firefox - 由于签名,修改现有的 Firefox 扩展不起作用
- gephi - Gephi - 50% 的节点没有数据标签
- ios - 无法安装构建 Xcode 11.7
- javascript - 在导航期间管理表单状态 - Django
- python - 在本地(非 Azure)docker 实例中使用来自 Azure 源的 python 包
- javascript - Webpack configuration in Gatsby, naming conventions
- ios - 'React/RCTBridgeDelegate.h' 文件未找到 React Native 和 XCode