java8 peek


这样不会有任何的输出;Stream.of("one", "two", "three", "four").peek(e -> System.out.println(e));
这样输出:Stream.of("one", "two", "three", "four").peek(e -> System.out.println(e)).collect(Collectors.toList())

one
two
three
four

原因:

java8流中所有的操作都是蓄而不发的,只有执行foreach,collect等终结操作时,流的操作才会执行。
而且流内部会自动进行优化,只要得到想要的解决就不会继续进行计算了。
peek是个中间操作,它提供了一种对流中所有元素操作的方法,而不会把这个流消费掉(foreach会把流消费掉),然后你可以继续对流进行其他操作。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM