Java 如何按升序对HashMap进行排序

Java 如何按升序对HashMap进行排序,java,hashmap,treemap,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,但a得到了以下结果: {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应该是第一名,但现在是第三名 请告诉我如何

我有以下键:值对

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
,但a得到了以下结果:

{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应该是第一名,但现在是第三名


请告诉我如何解决此问题。

TreeMap
对于
字符串
键,默认情况下将使用字符串字典顺序(这是
字符串
的自然顺序),除非您在构造函数中提供自己的比较器

当使用字典顺序时,A2:A8位于A20:A26之后


您的比较器可能必须将字符串键拆分为4个部分(例如,
A20:A26
将拆分为
A
20
A
26
),并分别比较每对部分,对整数部分使用整数比较。

什么的“升序”?键,值?请显示您的代码。您可以使用集合。使用比较器排序。所以您可以决定它将如何进行比较Fault comparator按字典顺序对字符串进行排序。你需要的是数字顺序。如果您想实现hashmapI want的自定义比较器(按键的升序),请查看我上一篇评论中的链接。我将键拆分为“:”,然后取第一个参数并替换为“A”,这给了我数值,正常树映射在那里工作。thanks@AutoMater不客气!