I have following code:
Stream.of("Java", "Stream", "Test")
.peek(s -> System.out.print(s + " "))
.allMatch(s -> s.startsWith("J"));
Why does it print me Java Stream?
Because allMatch()
checks if everyone element in the stream is true. And since the second was false, it doesn't have to check further.
So peek()
won't print the 3rd element.
allMatch
is short-circuiting operation as most of the streams operations are. since allMatch
returned early that's why peek
is only printing the first two elements.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With