前言
創(chuàng)新互聯(lián)是一家從事企業(yè)網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、成都做網(wǎng)站、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計制作的專業(yè)網(wǎng)絡(luò)公司,擁有經(jīng)驗豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨特的設(shè)計風格。自公司成立以來曾獨立設(shè)計制作的站點超過千家。只有光頭才能變強。
相信也有不少的同學想要知道:Lambda表達式在工作中哪個場景會用得比較多?跟Lambda搭邊的,使用 Stream流會比較多
一般人第一次看Stream流的代碼,都會有點看不懂(它的代碼看起來好像就不是寫Java一樣.),希望這篇文章能帶大家入個門
一、體驗Stream流
大家在自學時,大多數(shù)會學過一個程序:算出從數(shù)組元素的和,當時我們是怎么寫的?一般來說是這樣的:
publicstaticvoidmain(String[]args){int[]nums={1,2,3};intsum=0;for(inti:nums){sum+=i;}System.out.println("結(jié)果為:"+sum);}
如果我們使用Stream流的話,可以這樣:
publicstaticvoidmain(String[]args){int[]nums={1,2,3};intsum2=IntStream.of(nums).sum();System.out.println("結(jié)果為:"+sum2);}
從 代碼量上可以明顯看出,用Stream流的方式會少一些。
我理解的Stream流編程就是: 某些場景會經(jīng)常用到操作(求和/去重/過濾….等等),已經(jīng)封裝好API給你了,你自己別寫了,調(diào)我給你提供的API就好了。
1.1 支持并發(fā)
回到我們最原始的代碼:
publicstaticvoidmain(String[]args){int[]nums={1,2,3};intsum=0;for(inti:nums){sum+=i;}System.out.println("結(jié)果為:"+sum);}
如果我們想要for循環(huán)的內(nèi)部支持并發(fā)的話,顯然不太好去寫。但使用Stream流的方式, 調(diào)用一個方法就可以支持并發(fā)(parallel):
publicstaticvoidmain(String[]args){int[]nums={1,2,3};intsum2=IntStream.of(nums).parallel().sum();System.out.println("結(jié)果為:"+sum2);}
優(yōu)點:調(diào)API肯定是比自己寫的代碼量要少。
缺點:不方便調(diào)試
為什么要使用Stream流在我看來就是以上兩個原因:
二、如何使用Stream流?