Mam mapę: TreeMap<String, Integer> m = new TreeMap<>();
gdzie mam cały alfabet i wartości, które pokazują, ile razy każda litera została znaleziona w moim tekście.Jak posortować TreeMap <String, Integer>?
Chcę posortować tę mapę w porządku malejącej liczby; oznacza to, że najczęstsza litera znajduje się w pierwszym wierszu, a ostatnia linia wyjścia wskazuje najmniejszą literę. Jeśli dwie litery mają tę samą częstotliwość, najpierw musi pojawić się litera, która jest pierwsza w alfabecie. Jak to zrobić?
Próbowałem z komparatora:
public int compare(String a, String b) {
if (base.get(a) >= base.get(b) && a.compareToIgnoreCase(b) < 0) {
return -1;
} else {
return 1;
}
}
ale nadal, to nie to, wyjście jest:
D 3
E 3
A 2
S 5
Guys ... Znalazłem to wcześniej, to nie zrobił pomoc w ogóle. Dobre wyjście powinno być:
S 5
D 3
E 3
A 2
dokładny duplikat http://stackoverflow.com/questions/3074154/sorting-a-hashmap-based-on-value-then-key – JohnJohnGa
inny duplikat http://stackoverflow.com/questions/1448369/how-to-sort- a-treemap-based-on-its-values – mellamokb
@JohnJohnGa: nie. Moje pytanie jest trochę inne. Zobacz moją edycję – Katie