为了账号安全,请及时绑定邮箱和手机立即绑定

基于键对hashmap进行排序

基于键对hashmap进行排序

慕码人8056858 2019-08-27 17:52:42
基于键对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由于查找优化不会保留顺序。


查看完整回答
反对 回复 2019-08-27
?
汪汪一只猫

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());

当您添加新元素时,它们将自动排序。

在您的情况下,甚至可能不需要实现比较器,因为字符串排序可能就足够了。但是,如果要实现特殊情况,例如小写字母在大写之前出现,或者以某种方式处理数字,请使用比较器。


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 379 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号