java - Map<String, Set<Pathway>> 转换为字符串映射到 Pathways 属性之一的集合

标签 java java-8 java-stream

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

class Pathway {
  private dbId;
  private name;
}

这些通路在基因的 map 结构上,指向基因所属的所有通路的集合

Map<String, Set<Pathway>> geneToPathwayList;

我想把它转换成 Map<String, Set<String>> geneToPathwayDbId 的 map 使用流。

为此,我尝试遍历映射的条目集,收集键作为键,然后通过将路径集映射到一组 dbId 来收集值,但我无法获得语法正确。以下是它目前的样子:

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

我不知道如何选择 e作为每个条目的值。

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

最佳答案

听起来像你在追求

e -> e.getValue().stream().map(Pathway::getDbId).collect(Collectors.toSet())

关于java - Map<String, Set<Pathway>> 转换为字符串映射到 Pathways 属性之一的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65349080/

相关文章:

java - 为什么要从头开始构建 JavaFX?

java - Hibernate @OneToMany 连接表抛出 StackOverflowException

java - 按修饰符对包含方法的数组进行排序

Java 8 根据条件从 map 中获取列表

java - 在字符串列表中使用 Java 8 流 groupingBy?

java - 使用 Java8 流 API 从集合中删除最大值(或最小值)

java - Java启动大量定时器对系统有什么影响?

java - Java 中的 HeadlessException - ImageJ

java - 如何实现泛型Function方法参数?

java - 如何使用 Java 8 进行分组和收集?