Класс коллекции обычно дает вам некоторую карту, основанную на упорядоченном ключе, например, java.util.TreeMap или C ++ std :: map.Используя это, вы можете извлекать элементы в отсортированном порядке - вам, возможно, придется инвертировать порядок, если класс дает вам элементы в возрастающем порядке.Если все, что вы хотите сделать, это прочитать верхние N элементов, этого должно быть достаточно для вас.
Если вы хотите произвольный доступ к N-му самому высокому элементу, это можно сделать, пометив древовидную структуру данных числомэлементов под каждым узлом, но я не знаю о широко доступной библиотеке классов, которая дает вам это.
Если подумать, если вы просто хотите получить N старших элементов по порядку, вы можете сделатьэто с приоритетной очередью, если вы готовы удалить элементы по мере их прочтения - и снова поместить их позже, если вам нужно восстановить исходное содержимое.