【发布时间】:2018-07-09 19:21:11
【问题描述】:
如何使用 Java 8 流基于其他两个地图构建地图?即,我有以下地图结构:
map1 = Map<MyModel, List<String>>();
map2 = Map<String, String>();
其中map1 的List<String> 值与map2 中的String 键相同。换句话说,基于map1 values 可以将其用作map2 中的keys 并从那里获取values。
那么,我的问题是如何使用流和 lambdas 技术合并这两个映射并构建一个新映射,其中将包含 MyModel as keys 和 List<Strings> as values 而没有重复?
这是我目前所拥有的:
map1 = Map<MyModel, List<String>>();
map2 = Map<String, String>();
Map<MyModel, List<String>> map3 = Stream.of(map1, map2)
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(v1, v2) -> v1
)
);
任何帮助将不胜感激。
【问题讨论】:
标签: lambda java-8 java-stream map-function