Вы все еще можете сделать это, используя java-steam
API:
Map<String, List<Integer>> map = Map.of(
"a",List.of(1,2),
"b",List.of(3,4,5,6),
"c",List.of(7,8,9)
);
Запись с максимальным размером списка:
Optional<Map.Entry<String, List<Integer>>> max = map.entrySet()
.stream()
.max(Comparator.comparingInt(value -> value.getValue().size()));
карта с записями с максимальным размером списка:
Integer maxSize = max.get().getValue().size();
Map<String, List<Integer>> maxMap = map
.entrySet()
.stream()
.filter(entry -> entry.getValue().size() == maxSize)
.collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue));
или, наконец, вы можете отсортировать карту и сохранить результат в LinkedHashMap:
LinkedHashMap<String, List<Integer>> sortedMap = map
.entrySet()
.stream()
.sorted(Comparator.comparingInt(value -> value.getValue().size()))
.collect(
Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(u, v) -> {
throw new IllegalStateException(String.format("Duplicate key %s", u));
},
LinkedHashMap::new
)
);