@click_f

Как сделать .collect() в лямбдавыражении?

NavigableMap<Integer, Items>  filter_result = map.entrySet().stream()
                .filter( item -> item.getValue() < max)
                .limit(size)
                .collect(<???>);

Как получить на выходе NavigableMap, с учетом того, что Items - это кастомный тип, а map -- тоже NavigableMap?
  • Вопрос задан
  • 247 просмотров
Решения вопроса 1
Collector.of(
    TreeMap::new,
    (map, e) -> map.put(e.getKey, e.getValue()),
    (left, right) -> {left.putAll(right); return left;}
    EnumSet.of(Collector.Characteristics.UNORDERED, Collector.Characteristics.IDENTITY_FINISH))

как-то так.
Ещё можно написать свой Collector
Но можно проще так:
NavigableMap<Integer, Items> result = new TreeMap<>();

...forEach(e -> result.put(e.getKey(), e.getValue())
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы