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?
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?
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.
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.