Эффективность, полученная благодаря хранению строк в HashSet
для быстрого поиска, не поможет вам при поиске самой длинной строки. Для этого вам необходимо обновить структуру данных.
Один из вариантов - хранить две отдельные структуры данных - TreeSet<Set<String>>
наборов строк, где компаратор для TreeSet
просто сравнивает длину строк плюс более раннюю HashSet
. Вы можете эффективно вставить строку в эту гибридную структуру данных, просто обновив соответствующий набор в TreeSet
, чтобы он содержал новую строку, и вставив строку в HashSet
, как раньше. Это также позволит вам эффективно найти все самые большие строки, просто запросив у TreeSet
его самый большой элемент.
Надеюсь, это поможет!