У меня есть источник строк (скажем, текстовый файл), и многие строки повторяются несколько раз. Мне нужно получить X самых распространенных строк в порядке убывания количества вхождений.
Сначала мне пришла в голову идея создать сортируемый мешок (что-то вроде org.apache.commons.collections.bag.TreeBag) и предоставить компаратор, который будет сортировать записи в нужном мне порядке. Однако я не могу понять, какой тип объектов мне нужно сравнить. Это должна быть какая-то внутренняя карта, которая объединяет мой объект (String) и количество вхождений, сгенерированных внутри TreeBag. Это возможно?
Или мне было бы лучше просто использовать хэш-карту и отсортировать ее по значению, как описано, например, в Java сортирует HashMap по значению