Stream流思想和常用方法
一、IO流用于讀寫;Stream流用于處理數(shù)組和集合數(shù)據(jù);
1、傳統(tǒng)集合遍歷:
?
?2、使用Stream流的方式過濾:
?
其中,鏈式編程(返回值就是對象自己)中,filter使用的是Predicate函數(shù)式接口,它的唯一抽象方法是Test()布爾判斷:
?
?
遍歷方法forEach()使用的是數(shù)據(jù)消費Comsumer函數(shù)式接口唯一抽象方法是accept()方法,方法體中(lambda表達式)就是對入?yún)?shù)據(jù)經(jīng)行處理使用就行::
?
?2、Stream流的思想: 是個生產(chǎn)線,只處理獲取的數(shù)據(jù)源數(shù)據(jù),不存儲數(shù)據(jù):
?
?其中,map步驟,映射可以改變集合元素的數(shù)據(jù)類型;
二、獲取集合的兩種方法
?
1、Collection集合的List和Set單列集合:?
?
?其中,String的底層就是一個字節(jié)數(shù)組;
2、Map雙列集合集合:
?
?3、Stream類的靜態(tài)方法of()獲取:
?
?三、Stream流的常用方法:
?
?
?其中,前面延遲方法是處理集合數(shù)據(jù),最后終結(jié)方法是真正的改變數(shù)據(jù)元素;
?1、終結(jié)方法for each
?
?2、延遲方法 filter
?
?
?
?3、Stream是管道流,只能被消費(使用)一次;
?
?異常:
?
?4、延遲方法map方法,使用的是函數(shù)式接口function接口,的apply唯一抽象方法:
function接口的唯一抽象方法apply:
?
?
?
?5、終結(jié)方法count()
?
?6、延遲方法limit:
?
?
?
?7、延遲方法skip:
?
?
?
?8、Stream類的靜態(tài)方法concat() , 合并流
?
?9、集合元素處理實例
9.1傳統(tǒng)集合方式處理:
從兩個集合中選幾個String類型的name 滿足條件的元素到新集合中并創(chuàng)建person對象:
?
?其中,addAll是把一個集合的元素都添加到當前集合對象中;
9.2Stream流的方式
?
?其中,Stream類靜態(tài)方法concat(stream1, stream2),map方法映射,將集合中元素數(shù)據(jù)類型轉(zhuǎn)換,String應用類型轉(zhuǎn)換成Person引用類型,使用forEach() 遍歷處理終結(jié);
?
轉(zhuǎn)載于:https://www.cnblogs.com/wmqiang/p/11521353.html
總結(jié)
以上是生活随笔為你收集整理的Stream流思想和常用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uni-app 手指左右滑动实现翻页效果
- 下一篇: Stream流方法引用