我有一张地图: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