Java操作應(yīng)用——靈活使用Stream
Stream是JDK8的新特性,任何標(biāo)注了@FunctionalInterface的接口都能使用Stream流來(lái)處理數(shù)據(jù)。
很多同學(xué)知道函數(shù)式編程很強(qiáng)大,也知道怎么用,但是實(shí)際應(yīng)用起來(lái)總會(huì)摸不著頭腦。
1.遍歷
只要了解了Stream的使用基本都會(huì)用它來(lái)遍歷。但是什么時(shí)候用map,什么時(shí)候用forEach,這是個(gè)問(wèn)題。
其實(shí)實(shí)際項(xiàng)目中我們遍歷一個(gè)集合類,無(wú)非是兩類操作。第一種是對(duì)集合中元素的本身進(jìn)行操作(如字段值的修改),第二種是消費(fèi)集合中的元素,比如打印每個(gè)元素的某個(gè)值,或者讓另一個(gè)方法使用元素。當(dāng)然,還有第三種,就是過(guò)濾、聚合、排序,這些都是比較簡(jiǎn)單的,我們這里不談。
針對(duì)第一種我們應(yīng)該把這種使用成為Function,這是一種給定T對(duì)象,返回R的函數(shù)式接口。詳情請(qǐng)看我之前的文章Function接口的使用。第二種其實(shí)是Consumer,也就是消費(fèi)者。這是給定T,但不返回值的函數(shù)式接口。
其實(shí)我們只看map里面的參數(shù)也知道,第一類的操作用map就行了。
點(diǎn)擊加載更多評(píng)論>>