Задать вопрос
@click_f

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

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

Как получить на выходе NavigableMap, с учетом того, что Items - это кастомный тип, а map -- тоже NavigableMap?
  • Вопрос задан
  • 249 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
Решения вопроса 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())
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы