2
Java 8 Steam聚合操作(aggregate operations)的forEach()與迭代(iterations)的區別 (matthung0807.blogspot.com)
natsu 積分 0

Internal iteration並沒有如傳統iteration有next()用來指示走訪下一個元素的方法。Internal iteration由你的應用程式決定要被迭代的集合,但該如何走訪集合中的的每一個元素則是由JDK決定;而External iteration則是被迭代的集合及迭代的方式兩者皆由應用程式來決定。

而主要的差別是,External iteration只能以序列方式(serial)迭代集合,而Internal iteration除了可以序列方式,也支援以平行方式(parallel)來迭代集合。

也就是說Sream的forEach可以利用平行計算將迭代的程式拆分為多個子程式來平行處理,最後在將子程式的執行結果組合起來。其意味著Stream的forEach比原本的iteration更彈性且高效

聽起來是個從 iteration 改用 stream 的好處

IngramChen 積分 0

大部份的程式加上 parallel() 後不會變快,甚至還會變慢...