如何按升序对HashMap进行排序

时间:2014-12-15 08:18:12

标签: java hashmap treemap

我有以下密钥:值对。

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应该是第一个,但它是第三个。

请告诉我如何解决这个问题。

1 个答案:

答案 0 :(得分:7)

对于TreeMap键,

String默认使用字符串词典顺序(这是String s的自然顺序),除非您在构造函数中提供自己的比较器

A2:使用字典顺序时,A8在A20:A26之后出现。

您的比较器可能必须将String键拆分为4个部分(例如,A20:A26将拆分为A20A和{{1分别比较每对部分,使用整数部分的整数比较。