У меня есть карта: 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