可能重复:
{{link1:如何在Java中按值对Map 进行排序?}}
我有一个HashMap,类型为:
HashMap<String, Integer> h = new HashMap<String, Integer>();
HashMap 包含字符串列表,整数是该字符串出现次数的计数器。我想要做的是根据整数对 HashMap 进行排序,然后按照字符串的字母顺序排序。
目前,我正在记录单词的最大出现次数(变量名为 max),并按以下方式显示值:
public void print(){
while(max > 0){
for (String key : h.keySet()){
if(h.get(key) == max){
System.out.println(key + " " + h.get(key));
}
}
max--;
}
}
这种方法不按字母顺序对值进行排序,而且每次访问HashMap都会访问max*h(size)次。
有更好的解决方案吗?