Sometimes when processing a Java stream() I find myself in need of a non-terminal forEach() to be used to trigger a side effect but without terminating processing.
I sus
Yes there is. It is called peek()
(example from the JavaDoc):
Stream.of("one", "two", "three", "four")
.peek(e -> System.out.println("Original value: " + e))
.filter(e -> e.length() > 3)
.peek(e -> System.out.println("Filtered value: " + e))
.map(String::toUpperCase)
.peek(e -> System.out.println("Mapped value: " + e))
.collect(Collectors.toList());