Недавно мне задали вопрос в интервью. Как найти 10 самых длинных строк в списке из миллиарда строк? Мой ответ заключался в том, что нам нужно написать компаратор, который сравнивает длины двух строк, а затем использовать конструктор TreeSet (компаратор). Как только вы начнете добавлять строки в Treeset, они будут сортироваться в соответствии с порядком сортировки, определенным компаратором. Затем просто выберите 10 лучших элементов набора деревьев.
Интервьюера это не устроило. Аргумент состоял в том, что для хранения миллиардов строк мне придется использовать суперкомпьютер.
Есть ли какая-либо другая структура данных, чем может обрабатывать такие данные?