我使用了TreeMap,其中键是String,值的类型是Integer.当我输出Map对象时,它不是按排序顺序打印的.
这是我使用的代码:
TreeMap<String,Integer> m = new TreeMap<String,Integer>(); m.put("Hello",1); m.put("world",2); m.put("Zertt",5); m.put("Hello",2); System.out.println("map : " + m);
我希望输出像这样排序:
map : {Hello=1,world=2,Zertt=5}
但相反,我得到了这个:
map : {Hello=1,Zertt=5,world=2}
解决方法
字符串的自然顺序区分大小写,因此Z在w之前出现(所有大写字母都在小写字母之前).
使用
TreeMap<String,Integer>(String.CASE_INSENSITIVE_ORDER);
对于不区分大小写的顺序.