我有以下密钥:值对。
A56:A64=9, A65:A73=9, A2:A8=7, A49:A55=7, A20:A26=7, A9:A19=11, A43:A48=6, A27:A42=16
我想按升序排序。我尝试使用TreeMap
,但得到了这个:
{A20:A26=7, A27:A42=16, A2:A8=7, A43:A48=6, A49:A55=7, A56:A64=9, A65:A73=9, A9:A19=11}
A2:A8 = 7应该是第一个,但它是第三个。
请告诉我如何解决这个问题。
答案 0 :(得分:7)
TreeMap
键, String
默认使用字符串词典顺序(这是String
s的自然顺序),除非您在构造函数中提供自己的比较器
A2:使用字典顺序时,A8在A20:A26之后出现。
您的比较器可能必须将String键拆分为4个部分(例如,A20:A26
将拆分为A
,20
,A
和{{1分别比较每对部分,使用整数部分的整数比较。