【发布时间】:2016-01-27 20:45:37
【问题描述】:
我有一个嵌套映射流Stream<Map<String, Map<String, String>>>,我想通过转换为条目集流并调用Collectors.toMap(...) 来组合(使用外部键;假设内部键是唯一的)。为了确保正确组合具有重复外键的映射,我将以下BinaryOperator 传递给toMap(...) 函数:
(existingMap, newMap) -> {
existingMap.putAll(newMap);
return existingMap;
}
代码似乎暂时可以工作,但我觉得我没有按预期使用Collectors.toMap(...),因为我正在改变累加器和组合器中的值。
这里是完整的代码 sn-p:
mapsToCombine.flatMap(map -> map.entrySet().stream()).collect(Collectors.toMap(Entry::getKey, Entry::getValue, (existingMap, newMap) -> {
existingMap.putAll(newMap);
return existingMap;
}));
【问题讨论】:
-
您实际上是在修改流源中的地图,这真的是您想要的吗?
标签: lambda java-8 collectors