Как в отсортированной карте вывести только первые n значений? HashMap

Кусок кода, отвечающий за сортировку карты не очень понятен мне, как работать с ним, как указать на индекс отсортированного элемента:

map.entrySet().stream() 
                        .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
                        .forEach(System.out::println);

Ответы (2 шт):

Автор решения: Andrew

Размер после сортировки задается через метод .limit(Integer count):

List<MyKeyType> lst = map.entrySet().stream()
  .map(Map.Entry::getKey)
  .sorted()
  .limit(10)
  .collect(Collectors.toList());

ну и дальше получить элемент по индексу:

lst.get(Integer list)

вот есть туториал по работе с List.

→ Ссылка
Автор решения: Artem Gatchenko

Вариант, который сохраняет отсортированную карту в список — чтобы можно было обращаться по индексу:

List<Map.Entry<String, Integer>> sortedList = map.entrySet().stream()
    .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
    .collect(Collectors.toList());

Теперь ты можешь, например:

Map.Entry<String, Integer> third = sortedList.get(2); // Индексация с 0
System.out.println("3-е место: " + third.getKey() + " -> " + third.getValue());
→ Ссылка