基于键对hashmap进行排序

基于键对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}

感谢帮助!


慕码人8056858
浏览 380回答 3
3回答

慕娘9325324

使用排序TreeMap:Map<String,&nbsp;Float>&nbsp;map&nbsp;=&nbsp;new&nbsp;TreeMap<>(yourMap);它会自动按键排序。我认为String在你的情况下自然订购会很好。请注意,HashMap由于查找优化不会保留顺序。

汪汪一只猫

将TreeMap与自定义比较器一起使用。class&nbsp;MyComparator&nbsp;implements&nbsp;Comparator<String> &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;compare(String&nbsp;o1,String&nbsp;o2) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Your&nbsp;logic&nbsp;for&nbsp;comparing&nbsp;the&nbsp;key&nbsp;strings &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}TreeMap<String,&nbsp;Float>&nbsp;tm&nbsp;=&nbsp;new&nbsp;TreeMap<String&nbsp;,&nbsp;Float>(new&nbsp;MyComparator());当您添加新元素时,它们将自动排序。在您的情况下,甚至可能不需要实现比较器,因为字符串排序可能就足够了。但是,如果要实现特殊情况,例如小写字母在大写之前出现,或者以某种方式处理数字,请使用比较器。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java