Перейти к содержимому
Максиметер

Сегодня я покажу вам простой, но мощный приём, который помогает упростить работу с колл...

Сегодня я покажу вам простой, но мощный приём, который помогает упростить работу с коллекциями в 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

813 просмотров

Канал в каталоге Максиметера

1 605 подписчиков · Наука

Другие публикации канала

Популярные публикации канала

Ещё по теме «Наука»

Читать дальше

Два раза в неделю свежие посты этого канала — на почту и в личную ленту. Без повторного поиска канала вручную.