私は地図を持っています:TreeMap<String, Integer> m = new TreeMap<>();
アルファベットと値全体があり、テキストで各文字が何回見つかったかを示しています。
そのマップをカウントの降順で並べ替えたいと思います。つまり、最も頻度の高い文字は最初の行にあり、出力の最後の行は最も頻度の低い文字を示します。2つの文字の頻度が同じである場合、アルファベットの最初に来る文字が最初に表示される必要があります。どうやって作るの?
私はコンパレータで試しました:
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