gpt4 book ai didi

java - 通过使用 java 流 api 的比较器对 map 的值进行排序

转载 作者:行者123 更新时间:2023-11-29 07:24:14 25 4
gpt4 key购买 nike

我有一个 Map 并想通过 Comparator 将结果放入 LinkedHashMap 中对值进行排序。

Map<String, User> sorted = test.getUsers()
.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue(SORT_BY_NAME))
.collect(LinkedHashMap::new, (map, entry) -> map.put(entry.getKey(), entry.getValue()),
LinkedHashMap::putAll);
test.setUsers(sorted);

一切正常,但是,我想知道这是否可以简化。

实际上我创建了一个新的 Map 并将新的 Map 放入 setUsers() 中。我可以直接更改流而不创建新的 LinkedHashMap 吗?

使用Collections.sort(Comparator),列表直接排序。但是,Collections.sort 不适用于 map 。

最佳答案

为什么不使用 Collectors.toMap()

.collect(Collectors.toMap(
Entry::getKey,
Entry::getValue,
(a, b) -> { throw new AssertionError("impossible"); },
LinkedHashMap::new));

关于java - 通过使用 java 流 api 的比较器对 map 的值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57468592/

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