一、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() 遍歷處理終結;