如何在Java中对Map进行排序

kal*_*esh 2 java

我想根据其键值plz对地图进行排序,请参阅下面的代码

public static void main(String[] args) {

    SortedMap map = new TreeMap();

    // Add some elements:
    map.put("2", "Two");
    map.put("1", "One");
    map.put("5", "Five");
    map.put("4", "Four");
    map.put("3", "Three");
    map.put("10", "Ten");
    map.put("12", "Twelve");
    map.put("7", "Seven");
    map.put("9", "Nine");

    Iterator iterator = map.keySet().iterator();
    while (iterator.hasNext()) {
        Object key = iterator.next();
        System.out.println("key : " + key + " value :" + map.get(key));
    }


}

 Result Should come below

key : 1 value :One
key : 2 value :Two
key : 3 value :Three
key : 4 value :Four
key : 5 value :Five
key : 7 value :Seven
key : 9 value :Nine
key : 10 value :Ten
key : 12 value :Twelve
Run Code Online (Sandbox Code Playgroud)

Pét*_*rök 10

我想你的问题是键"10"和"12"在"2"之前出现(顺便说一下,下次你应该更具体地说明你的问题).这只是由于字符串的排序方式.

如果要根据键的整数值对键进行排序,则可以使用以下选项:

  • 使用Integer键而不是Strings
  • 将前导零插入字符串键以使它们同样长,即"01"代替"1"等.
  • 使用特殊的Comparator,根据您的意愿进行分类.


归档时间:

查看次数:

3328 次

最近记录:

16 年,3 月 前