私はマップを持っています:TreeMap<String, Integer> m = new TreeMap<>();
ここで私はアルファベットと値を持っています。これは、各文字がテキスト内で何回見つかったかを示しています。TreeMapを並べ替える方法<String、Integer>?
降順でソートする必要があります。つまり、最も頻繁な文字が最初の行にあり、出力の最後の行が最も頻度の低い文字を示しています。 2つの文字が同じ頻度である場合、アルファベットの最初に来る文字が最初に表示される必要があります。作成方法
私はコンパレータで試してみました:
public int compare(String a, String b) {
if (base.get(a) >= base.get(b) && a.compareToIgnoreCase(b) < 0) {
return -1;
} else {
return 1;
}
}
が、それでも、そのことは、出力は次のようになります、前にすべてのこのdidntの助けがこれを見つけた
D 3
E 3
A 2
S 5
ガイズ...。グッド出力は次のようになります。
S 5
D 3
E 3
A 2
正確な複製http://stackoverflow.com/questions/3074154/sorting-a-hashmap-based-on-value-then-key – JohnJohnGa
別の複製http://stackoverflow.com/questions/1448369/how-to-sort- a-treemap-on-its-values – mellamokb
@JohnJohnGa:no。私の質問は少し違う。私の編集を参照してください – Katie