按键字符串排序映射(其中键实际上是一个整数)

use*_*951 1 java sorting java-8

我正在尝试对地图进行排序以显示下拉列表.但我无法完成任何排序.这将返回一张新地图.但不是像我期望的那样用按键排序的地图.

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));
Run Code Online (Sandbox Code Playgroud)

我当然没有想到密钥实际上是一个整数.这意味着将其排序为字符串不会给我预期的结果(作为整数排序).将键更改为Integer并转换该值将产生预期结果.

Ace*_*Ace 5

默认情况下,TreeMap保证其元素将按升序键排序.