我的代码如下,以及treeMapMem的输出如下: -
key value
1 a
10 b
2 c
3 d
for(Map.Entry<String,String> entry : treeMapMem.entrySet()) {
String value = entry.getValue();
myMenulistSeqMem.add(value);
}
我的问题是这样的排序顺序从1,2,3很好,但是在1之后出现10。任何解决的都会受到赞赏。谢谢你提前。
答案 0 :(得分:0)
这是因为默认字符串Comparator
使用lexicographical order - 即字符逐个字符。由于“1”位于“2”之前,因此任何以“1”开头的字符串将以“2”开头的任何其他字符串开头。
你可以创建自己的自定义比较器来实现Natural Sorting并将其提供给TreeMap
's constructor,但在这种情况下,将地图定义为更简单TreeMap<Integer, String>
。