【发布时间】:2015-10-17 13:17:23
【问题描述】:
我正在尝试对地图进行排序以显示在下拉列表中。但我无法完成任何排序。这将返回一个新地图。但不是我所期望的按键排序的地图。
private Map<String, String> mapInstrumentIDs = new TreeMap<>();
Map<Object, Object> val = mapInstrumentIDs
.entrySet()
.stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
我当然没有想到键实际上是一个整数。这意味着将其排序为字符串不会给我预期的结果(作为整数排序)。将键更改为整数并转换值将产生预期的结果。
【问题讨论】:
-
您不需要对
mapInstrumentIDs进行排序。它是一个TreeMap,所以它隐式地按键对其条目进行排序。 -
你能粘贴你的输入和你的预期输出吗?
-
是什么让你认为 .collect() 返回的地图会被排序?