New We are sorting MAX channels into categories and territories. Read the news

Не прячьте обязательные действия в peek или map



Stream может пропустить промежуточные операции, если результат терминальной операции можно получить без обработки элементов. Пример — count() для источника с известным размером:
long size = List.of("A", "B").stream()
    .peek(System.out::println)
    .count();

Печать здесь не гарантирована. Замена peek() на map(), возвращающий тот же элемент, не создаёт такой гарантии.

Если действие обязательно для каждого элемента, вынесите его в обычный цикл или выберите подходящую терминальную операцию. Для последовательного обхода с понятным управлением ошибками цикл часто проще.

peek удобно использовать для диагностики потока, но бизнес-операции не должны зависеть от его побочных эффектов.

#Java

Java Библиотека | Мы в Телеграм
Views: 293
Open in MAX Report an inaccuracy

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go