java - 如何按升序对 HashMap 进行排序

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

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

最佳答案

String 键的

TreeMap 将默认使用 String 字典顺序(这是 String 的自然顺序),除非您提供您的在构造函数中拥有自己的比较器。

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

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

关于java - 如何按升序对 HashMap 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27479857/

相关文章:

java - 输出的 wav 文件大小比原始文件大几倍

java - 从 NavigableMap 中提取列表

java - 在java中使用嵌套泛型时出现奇怪的结果

java - 从 Map 中的 Value 找到 Key

java - TreeMap 绞杀工作

java - Spring MVC : @Value annotation to get int value defined in *. 属性文件

java - 销毁 JSF 中的特定用户 session

java - 如何使pdf文件密码 protected ?

java - java中map中存储大量 'Entry'时如何节省内存?

java - Map 上的集合操作