如何按升序对HashMap进行排序

Ume*_*mar 4 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
Run Code Online (Sandbox Code Playgroud)

我想按升序排序.我试过用a 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}
Run Code Online (Sandbox Code Playgroud)

A2:A8 = 7应该是第一个,但它是第三个.

请让我知道如何解决这个问题.

Era*_*ran 7

TreeMap对于一个String键,默认情况下会使用String字典顺序(这是Strings 的自然顺序),除非你在构造函数中提供自己的Comparator.

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

您的比较器将可能有到String键分成4份(例如,A20:A26将被拆分A,20,A26),并分别比较各对的部分,使用为整数部分整数比较.