在java中我想在一行流中返回映射

我正在尝试改进我已经可以运行的代码,所以这就是事情,我有一个返回 a 的方法Map

public Map<String, String> extractPartitionsValues(java.nio.file.Path marketFile) {

    Map<String, String> map = new HashMap<>();
    for (String p : this.partitions) {
        map.put(p, partitionValueFromFilePath(p, marketFile.toString()));
    }
    return map;
}

我想使用stream和collectorsToMap在一行中重新运行它,但我真的很菜,所以我阅读了文档和我发现的所有内容,但它仍然不起作用,有人可以帮我解决这个问题吗?

回答

使用Collectors.toMap()withidentity()作为键和您对值的计算:

public Map<String, String> extractPartitionsValues(Path marketFile) {
    return partitions.stream()
      .collect(toMap(identity(), p -> partitionValueFromFilePath(p, marketFile.toString())));
}


以上是在java中我想在一行流中返回映射的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>