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