Объявите Comparator
, используя thenComparing
для цепочки.
Comparator<Map.Entry<Integer, Integer>> entryComparator
= Map.Entry.<Integer, Integer>comparingByValue(Comparator.reverseOrder())
.thenComparing(Map.Entry.comparingByKey());
Map<Integer,Integer> ranks = Map.of(2, 6, 5, 13, 1, 11, 3, 13, 9, 22);
List<Integer> ranksList= ranks.entrySet().stream()
.sorted(entryComparator)
.map(Map.Entry::getKey).limit(47)
.collect(Collectors.toList());
System.out.println(ranksList);
Требуется вывод:
[9, 3, 5, 1, 2]
Спецификация типа <Integer, Integer>
из comparingByValue
необходима для того, чтобы Java выводила типы для Map.Entry.comparingByKey()
.