Меня недавно задал вопрос в интервью. Как вы найдете 10 самых длинных строк в списке миллиардов строк? Ответом было то, что нам нужно написать Comparator, который сравнивает длины двух строк, а затем использовать конструктор TreeSet (Comparator). Как только вы начнете добавлять строки в Treeset, он будет сортироваться в соответствии с порядком сортировки указанного компаратора. Затем просто введите 10 лучших элементов Treeset.Коллекции: Как вы найдете 10 самых длинных строк в списке миллиардов строк?
Интервьюер не был доволен этим. Аргумент состоял в том, что для хранения миллиардов строк мне придется использовать суперкомпьютер.
Есть ли какая-либо другая структура данных, чем может иметь дело с данными такого рода?
Подробнее об этой структуре данных [trie] (https://en.wikipedia.org/wiki/Trie) –
Интервьюер хотел услышать о очереди приоритетов (минимальная куча, хранящая десять самых длинных строк). – MBo