【发布时间】:2021-07-28 06:07:45
【问题描述】:
在图中,我将节点与数量相关联:数量可能是冗余的,而节点不能,因此为了根据升序对数量进行排序,我将节点作为键和数量作为 LinkedHashMap 的值,并按如下方式排序:
LinkedHashMap<Node, Integer> orderedResult = mapNameToSize.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
但我的问题是如何将键相应地排序到 ArrayList 中?
【问题讨论】:
-
将键放入 ArrayList:
new ArrayList<>(orderedResult.keySet()) -
恐怕 keySet 不会返回正确的关联订单
-
是的,
orderedResult映射中条目的插入顺序,这是值顺序,因为您在插入该映射之前按值排序。你真的明白那段代码在做什么吗,因为我已经说过了?!? -
results.entrySet().sorted(comparingByValue()).map(Map.Entry::getKey).collect(toList())怎么样 -
我实际上的意思是这段代码可以替换当前代码放入
LinkedHashMap。如果您想要的只是排序键,那么这似乎没有必要。
标签: java sorting linkedhashmap