【发布时间】:2013-01-16 19:28:05
【问题描述】:
我有一张地图:TreeMap<String, Integer> m = new TreeMap<>();,其中有一个完整的字母表和值,它显示了每个字母在我的文本中出现的次数。
我想按降序对该地图进行排序;即出现频率最高的字母在第一行,输出的最后一行表示出现频率最低的字母。 如果两个字母出现频率相同,那么字母表中排在第一位的字母必须在最前面。 如何做到?
我尝试了比较器:
public int compare(String a, String b) {
if (base.get(a) >= base.get(b) && a.compareToIgnoreCase(b) < 0) {
return -1;
} else {
return 1;
}
}
但仍然不是,输出是:
D 3
E 3
A 2
S 5
伙计们......以前发现过这个,这根本没有帮助。好的输出应该是:
S 5
D 3
E 3
A 2
【问题讨论】:
-
@JohnJohnGa:不。我的问题有点不同。查看我的编辑