首页 > Java > java教程 > 如何使用流和 Lambda 有效地将 Java 列表转换为映射?

如何使用流和 Lambda 有效地将 Java 列表转换为映射?

Patricia Arquette
发布: 2024-12-16 13:38:10
原创
626 人浏览过

How Can I Efficiently Convert a Java List to a Map Using Streams and Lambdas?

转换 Java 列表到地图使用 Java 8 Streams 和 Lambda

背景:

将对象列表转换为映射是一项常见任务。 Java 7 及更低版本要求使用 for-each 循环进行命令式编码。在 Java 8 中,使用流和 lambda 提供了简洁而优雅的解决方案。

Java 7 解决方案:

private Map<String, Choice> nameMap(List<Choice> choices) {
    final Map<String, Choice> hashMap = new HashMap<>();
    for (final Choice choice : choices) {
        hashMap.put(choice.getName(), choice);
    }
    return hashMap;
}
登录后复制

不使用 Guava 的 Java 8 解决方案:

利用 Collectors 类,可以在单个流中完成转换操作:

Map<String, Choice> result =
    choices.stream().collect(Collectors.toMap(Choice::getName,
                                              Function.identity()));
登录后复制

这里,Choice::getName 检索名称键,Function.identity() 保留值。

以上是如何使用流和 Lambda 有效地将 Java 列表转换为映射?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板