Java 8 Streams peek api -


i tried following snippet of java 8 code peek.

list<string> list = arrays.aslist("bender", "fry", "leela"); list.stream().peek(system.out::println); 

however there nothing printed out on console. if instead:

list.stream().peek(system.out::println).foreach(system.out::println); 

i see following outputs both peek foreach invocation.

bender bender fry fry leela leela 

both foreach , peek take in (consumer<? super t> action) why output different?

the javadoc mentions following:

intermediate operations return new stream. lazy; executing intermediate operation such filter() not perform filtering, instead creates new stream that, when traversed, contains elements of initial stream match given predicate. traversal of pipeline source not begin until terminal operation of pipeline executed.

peek being intermediate operation nothing. on applying terminal operation foreach, results printed out seen.


Comments

Popular posts from this blog

angular - DownloadURL return null in below code -

python 2.7 - Given three nested dictionaries, sort the top two nested dictionaries from a value in the innermost dictionary? -