對(duì)于簡(jiǎn)單操作右蒲,比如最簡(jiǎn)單的遍歷阀湿,Stream串行API性能明顯差于顯示迭代,但并行的Stream API能夠發(fā)揮多核特性瑰妄。
對(duì)于復(fù)雜操作陷嘴,Stream串行API性能可以和手動(dòng)實(shí)現(xiàn)的效果匹敵,在并行執(zhí)行時(shí)Stream API效果遠(yuǎn)超手動(dòng)實(shí)現(xiàn)间坐。
所以灾挨,如果出于性能考慮,
1. 對(duì)于簡(jiǎn)單操作推薦使用外部迭代手動(dòng)實(shí)現(xiàn)竹宋。
2. 對(duì)于復(fù)雜操作劳澄,推薦使用Stream API。
3. 在多核情況下蜈七,推薦使用并行Stream API來(lái)發(fā)揮多核優(yōu)勢(shì)秒拔。
4.單核情況下不建議使用并行Stream API。
如果出于代碼簡(jiǎn)潔性考慮飒硅,使用Stream API能夠?qū)懗龈痰拇a砂缩。
即使是從性能方面說(shuō),盡可能的使用Stream API也另外一個(gè)優(yōu)勢(shì)三娩,那就是只要Java Stream類庫(kù)做了升級(jí)優(yōu)化庵芭,代碼不用做任何修改就能享受到升級(jí)帶來(lái)的好處。
for本來(lái)就是比較底層的操作雀监,性能自然很高双吆。stream的優(yōu)勢(shì)是并行處理。數(shù)據(jù)量越大会前,stream的優(yōu)勢(shì)越明顯伊诵,數(shù)據(jù)量小,肯定是for循環(huán)性能最好回官。