Я попробовал следующий фрагмент кода Java 8 с peek
.
List<String> list = Arrays.asList("Bender", "Fry", "Leela");
list.stream().peek(System.out::println);
Однако на консоли ничего не распечатано. Если я сделаю это вместо:
list.stream().peek(System.out::println).forEach(System.out::println);
Я вижу следующее, которое выводит как просмотр, так и вызов foreach.
Bender
Bender
Fry
Fry
Leela
Leela
Оба foreach
и peek
принимают (Consumer<? super T> action)
Итак, почему вывод отличается?