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