Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.
Наука · 15 июня 2026 г.
Сегодня я покажу вам простой, но мощный приём, который помогает упростить работу с колл... — 15 июня 2026 г. в 05:11:24.179
Сегодня я покажу вам простой, но мощный приём, который помогает упростить работу с коллекциями в Java — Collectors.collectingAndThen. Если вы когда-нибудь писали что-то вроде: List<String> list = someStream .collect(Collectors.toList()); return Collections.unmodifiableList(list); то collectingAndThen сделает это в одну строку: List<String> list = someStream.collect( Collectors.collectingAndThen( Collectors.toList(), Collections::unmodifiableList ) ); Где это может пригодиться? – Возвращаете коллекцию из метода и не хотите, чтобы кто-то её изменял – Хотите обернуть результат в Optional, Set, Map, EnumMap и т.д. – Нужно после сбора в Stream ещё что-то сделать над результатом (например, отсортировать, фильтровать, обернуть) Ещё пример: Optional<String> maxName = people.stream() .map(Person::getName) .collect(Collectors.collectingAndThen( Collectors.maxBy(Comparator.naturalOrder()), Optional::ofNullable )); Этот метод часто остаётся в тени, но он может существенно упростить код и сделать его чище. Попробуйте использовать его в своём проекте 😉 👉 @BookJava

