java HashMap sorting <String,Integer> . How to sort it?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How to sort a Mapon the values in Java?
在我的项目中,我取了这样的哈希图
HashMap degree = new HashMap();
假设我有:
1 2 3 4 5 6 | degree.put("a",5); degree.put("b",2); degree.put("c",4); degree.put("d",2); degree.put("e",3); degree.put("f",5); |
Now I have to Sort this list according to given Integer values
排序后的哈希图应为:
{a=5, f=5, c=4, e=4, b=4, d=2}
我该怎么做?
如果要按值的排序顺序准备排序列表,则必须创建适当的对象,如
如果你想要排序的映射,hashmap不是最好的方法。
我建议在分类时看一下
https://stackoverflow.com/a/1283722/975959
1 2 3 4 5 6 7 8 | ArrayList<Integer> sortedHashMap=new ArrayList<Integer>(); for("your Object" m : degree.values()) { sortedHashMap.add(m); } collections.sort(sortedHashMap); |
所以,您可以将哈希图打印为已排序的哈希图!
您可以执行插入排序,从原始散列图构建新的散列图(占用x2内存,效率非常低)。因此,您需要使用hashmap的.get()和.set()方法,几乎是n*n(最坏情况)次,其中n是元素数。