在Java8中使用嵌套对象对地图进行流式处理

在Java8中使用嵌套对象对地图进行流式处理,java,collections,java-8,java-stream,collectors,Java,Collections,Java 8,Java Stream,Collectors,我有一张格式图 Map<Object1, List<Object2>> dependencies; 映射依赖关系; 。有人能建议一下使用Java Streams将其转换为Map>的简明方法吗?尝试使用streams执行此操作失败,如下所示 class Object2 { List<Object3> subDependencies; } //What I was trying to do Map<Object1, List<Object3&

我有一张格式图

Map<Object1, List<Object2>> dependencies;
映射依赖关系;
。有人能建议一下使用Java Streams将其转换为Map>的简明方法吗?尝试使用streams执行此操作失败,如下所示

class Object2 {

List<Object3> subDependencies;

}

//What I was trying to do
Map<Object1, List<Object3>> results = dependencies.entrySet().stream().flatMap
   (entry -> entry.getValue().stream()
   .collect(Collectors.toMap(entry.getKey(), Object2::getsubDependecies));
class对象2{
列出子依赖项;
}
//我想做什么
映射结果=dependencies.entrySet().stream().flatMap
(entry->entry.getValue().stream())
.collect(Collectors.toMap(entry.getKey(),Object2::getsubDependecies));
试试这个:

Map结果=
dependencies.entrySet()
.stream()
.collect(toMap)(Map.Entry::getKey,
e->e.getValue()
.stream()
.map(Object2::GetSubDependences)
.flatMap(列表::流)
.收集(toList());

您是否试图将
子依赖项中的所有
Object3
值合并为一个列表?@ernest_k是的。我正在尝试将Object1的所有子依赖项合并到一个映射中,其中键为Object1,值为所有子依赖项的列表。看起来您在映射末尾缺少了两个右括号statement@Yoni对,那谢谢你@ETO。