Java 8 : Change the values of an EntrySet stream

标签 java dictionary java-8 java-stream

我有以下设置:

Map<Instant, String> items;
...
String renderTags(String text) {
    // Renders markup tags in a string to human readable form
}
...
<?> getItems() {
    // Here is where I need help
}

我的问题是,作为 items 映射值的字符串是用标签标记的。我希望 getItems() 返回所有项目,但使用 renderTags(String) 方法解析字符串。像这样的东西:

// Doesn't work
items.entrySet().stream().map(e -> e.setValue(renderTags(e.getValue())));

最有效的方法是什么?

最佳答案

如果你想要一个 Map 作为结果:

Map<Instant, String> getItems() {
    return items.entrySet()
            .stream()
            .collect(Collectors.toMap(
                    Map.Entry::getKey,
                    e -> renderTags(e.getValue())));
}

关于Java 8 : Change the values of an EntrySet stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31131984/

相关文章:

python - 将数据转储并加载到 JSON 中

dictionary - 如何在 go 中合并两个 map ?

java - PipeLine释放资源lambda

java - 用 Java 中的属性文件中的值替换 HashMap 键

java - ArrayList仅添加最后一个元素

java - 有没有一种简单的方法可以在 Jhipster 微服务网关上添加社交登录?

java - 将 Spring Boot 与现有 Spring 应用程序集成

SwiftUI 使用 ForEach 遍历字典

java - 有没有一种方法可以使用 "groupingBy"为嵌套结构中的多个元素收集 map ?

java - 使用 Maven 运行 Jersey 示例