使用流,如何在HashMap中映射值?

使用流,如何在HashMap中映射值?,第1张

使用流,如何在HashMap中映射值?

使用Java 8,您可以执行以下 *** 作:

Map<String, String> byNameMap = new HashMap<>();people.forEach((k, v) -> byNameMap.put(k, v.getName());

尽管使用Guava的Maps.transformValues会更好,它会包裹原始文件

Map
并在执行时进行转换
get
,这意味着您仅在实际消耗该值时才支付转换成本。

使用番石榴看起来像这样:

Map<String, String> byNameMap = Maps.transformValues(people, Person::getName);

编辑:

遵循@Eelco的评论(并且为了完整性),使用Collectors.toMap这样更好地转换为地图,如下所示:

Map<String, String> byNameMap = people.entrySet()  .stream()  .collect(Collectors.toMap(Map.Entry::getKey, (entry) -> entry.getValue().getName());


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5490390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存