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