Сравнение в Java соответствует стандарту, который поначалу немного сложен - лексикография c сравнение не является исключением, но как только вы поняли, как это происходит, есть поддержка, которая делает его довольно простым.
Я полагаю, что в конце для l oop, если счет равен, вы сравниваете текущее слово с mostRepeatedWord
, а если оно меньше (предшествует), вы сохраняете его в mostRepeatedWord
. Для лексикографического c сравнения используйте m.getKey().compareTo(mostRepeatedWord)
(или m.getKey().compareToIgnoreCase(mostRepeatedWord)
, если вы хотите игнорировать разницу между верхним и нижним регистром в сравнении). Метод вернет отрицательное число (любое число строго меньше 0, не указано, какое именно), если m.getKey()
доходит до лексикографически до mostRepeatedWord
(меньше его).
Таким образом, после вашего l oop mostRepeatedWord
содержит наименьшее из лексикографических слов слово, которое встречается наиболее часто (с наибольшим количеством на карте).
А если вам интересно, напишу ли я код для вас, нет , вы узнаете намного больше, сделав это самостоятельно. Если вы столкнетесь с проблемами, продолжайте в комментариях, но я отвечу.
Документация по методу compareTo
гласит:
Возвраты:
значение 0, если строка аргумента равна этой строке; значение меньше 0, если эта строка лексикографически меньше строкового аргумента; и значение больше 0, если эта строка лексикографически больше строкового аргумента.
Ссылки