gpt4 book ai didi

java - 通过使用 Java 8 流对其进行排序将集合转换为 Map

转载 作者:太空狗 更新时间:2023-10-29 22:42:36 24 4
gpt4 key购买 nike

我有一个列表,我需要对其进行自定义排序,然后将其转换为具有其 ID 与名称映射的映射。

这是我的代码:

Map<Long, String> map = new LinkedHashMap<>();
list.stream().sorted(Comparator.comparing(Building::getName)).forEach(b-> map.put(b.getId(), b.getName()));

我认为这会完成这项工作,但我想知道我是否可以避免在此处创建 LinkedHashMap 并使用花哨的函数式编程在一行中完成这项工作。

最佳答案

你有 Collectors.toMap 用于此目的:

Map<Long, String> map = 
list.stream()
.sorted(Comparator.comparing(Building::getName))
.collect(Collectors.toMap(Building::getId,Building::getName));

如果你想强制实例化的 Map 实现,使用这个:

Map<Long, String> map = 
list.stream()
.sorted(Comparator.comparing(Building::getName))
.collect(Collectors.toMap(Building::getId,
Building::getName,
(v1,v2)->v1,
LinkedHashMap::new));

关于java - 通过使用 Java 8 流对其进行排序将集合转换为 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29721095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com