Map<String, Set<Pathway>> 将字符串映射到一组 Pathways 属性的转换

Tim*_* B. 3 java java-8 java-stream

我有一个像这样的路径对象:

class Pathway {
  private dbId;
  private name;
}

Run Code Online (Sandbox Code Playgroud)

这些通路位于基因的图谱结构上,指向该基因所属的所有通路的集合

Map<String, Set<Pathway>> geneToPathwayList;

我想将其转换为Map<String, Set<String>> geneToPathwayDbId使用流的地图。

所以要做到这一点,我试图遍历映射的条目集,收集键作为键,然后通过将一组 Pathways 映射到一组 dbId 来收集值,但我无法获得正确的语法. 这是它目前的样子:

Map<String, Set<String>> finalMap = 
    geneToPathwayList.entrySet().stream()
    .collect(Collectors.toMap(
        Map.Entry::getKey, 
            e -> e.stream().map(Pathway::getStId).collect(Collectors.toSet())));
Run Code Online (Sandbox Code Playgroud)

我被挂断了如何e从每个条目中选择作为值。

解决此问题的任何帮助都会非常有帮助!

eis*_*eis 7

听起来你在追求

e -> e.getValue().stream().map(Pathway::getDbId).collect(Collectors.toSet())
Run Code Online (Sandbox Code Playgroud)