【发布时间】:2016-03-26 16:37:21
【问题描述】:
如何按整数值对hashmap 进行排序,我找到的答案之一是here
Evgeniy Dorofeev 写的,他的回答是这样的
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 4);
map.put("c", 6);
map.put("b", 2);
Object[] a = map.entrySet().toArray();
Arrays.sort(a, new Comparator() {
public int compare(Object o1, Object o2) {
return ((Map.Entry<String, Integer>) o2).getValue().compareTo(
((Map.Entry<String, Integer>) o1).getValue());
}
});
for (Object e : a) {
System.out.println(((Map.Entry<String, Integer>) e).getKey() + " : "
+ ((Map.Entry<String, Integer>) e).getValue());
}
输出
c : 6
a : 4
b : 2
我的问题是排序如何变成 Desc ?如果我想对HashMap Asc 进行排序,我该怎么做??
最后一个问题是:排序后如何获得第一个元素?
【问题讨论】:
-
您可以通过在
compare方法中切换o2和o1来反转顺序 - 获取第一个元素只是a[0],然后使用与for循环中相同的逻辑获取值和密钥!? -
不,我的问题是关于我在问题中指定的用户编写的代码:)