【发布时间】:2018-12-05 16:36:44
【问题描述】:
我有一个列表,我需要对其进行自定义排序,然后将其转换为带有 ID 与名称映射的映射。
这是我的代码:
Map<Long, String> map = new LinkedHashMap<>();
list.stream().sorted(Comparator.comparing(Building::getName)).forEach(b-> map.put(b.getId(), b.getName()));
我认为这可以完成这项工作,但我想知道我是否可以避免在这里创建 LinkedHashMap 并使用花哨的函数式编程来完成这项工作。
【问题讨论】:
-
使用
toMap()ofjava.util.stream.Collectors -
除了使用
collect更可取之外,您应该注意sorted(…).forEach(…)是错误的(尽管它有时有效)。你真正的意思是sorted(…).forEachOrdered(…)…
标签: java collections java-8 linkedhashmap