Фишки java #1.
Простой стрим, казалось бы:
List<String> letters = Arrays.asList("A", "B", "C", "D");
long count = letters.stream().peek(System.out::println).count();
System.out.println(count);
Однако при выполнении мы получим лишь выполнение терминальной операции.
Все дело в том, что результат стрима никак не зависит от промежуточного метода, поэтому он просто не выполнится.
Вывод: Если терминальная команда count() может выполнится и ее результат не зависит от промежуточной операции peek(), промежуточные операции выполняться не будут.
Такие вот дела.
Около минуты
16 апреля 2023