基于键对hashmap进行排序我在java中有以下hashmap:{B046 = 0.0,A061 = 3.0,A071 = 0.0,B085 = 0.0,B075 = 3.0,B076 = 9.0,B086 = 3.0,B095 = 0.0,B096 = 0.0,A052 = 0.0,B066 = 0.0,B056 = 9.0,B065 = 0.0,B055 = 9.0}我应该如何对hashmap进行排序,以便将Alphabet和数字数字考虑在内?生成的hashmap应如下所示:{A052 = 0.0,A061 = 3.0,A071 = 0.0,B046 = 0.0,B055 = 9.0,B056 = 9.0,B065 = 0.0,B066 = 0.0,B075 = 3.0,B076 = 9.0,B085 = 0.0,B086 = 3.0,B095 = 0.0,B096 = 0.0}感谢帮助!
3 回答

慕娘9325324
TA贡献1783条经验 获得超4个赞
使用排序TreeMap
:
Map<String, Float> map = new TreeMap<>(yourMap);
它会自动按键排序。我认为String
在你的情况下自然订购会很好。
请注意,HashMap
由于查找优化不会保留顺序。

汪汪一只猫
TA贡献1898条经验 获得超8个赞
将TreeMap与自定义比较器一起使用。
class MyComparator implements Comparator<String> { public int compare(String o1,String o2) { // Your logic for comparing the key strings } }TreeMap<String, Float> tm = new TreeMap<String , Float>(new MyComparator());
当您添加新元素时,它们将自动排序。
在您的情况下,甚至可能不需要实现比较器,因为字符串排序可能就足够了。但是,如果要实现特殊情况,例如小写字母在大写之前出现,或者以某种方式处理数字,请使用比较器。
添加回答
举报
0/150
提交
取消