如何在Java中对map.keySet()进行排序?

Cec*_*lia -2 java hashmap intellij-idea sortedmap keyset

public class MapKeyExample {
    public static void main(String[] args){

        //Initializing a Map of type HashMap
        Map<Integer, String> map = new HashMap<>();
        Set<Integer> s = new HashSet<>();
        map.put(1, "One");
        map.put(3, "Three");
        map.put(5, "Five");
        map.put(7, "Seven");
        map.put(9, "Nine");
        System.out.println(map);
        s = map.keySet();
        System.out.println(s);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在的输出是

{1=One, 3=Three, 5=Five, 7=Seven, 9=Nine}
[1, 3, 5, 7, 9]
Run Code Online (Sandbox Code Playgroud)

的预期输出为:

[1, 5, 3, 9, 7]
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何将其修改为Linkedhashmap或treemap吗?非常感谢。

Emi*_*ily 5

您不清楚“将其更改为我想要的顺序”是什么意思。

但是,Java提供了以下选项:

  • 一个LinkedHashMap中可以在你插入的条目相同的顺序进行遍历。
  • TreeMap的构造函数允许您提供一个Comparator,它将定义键的顺序。