Stream流思想和常用方法

2022-05-05 11:03:13 字數 1679 閱讀 4063

一、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是管道流,只能被消費(使用)一次;

異常:

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

Stream流常用操作

stream是個好東西,用完之後感覺以前寫的一堆判斷什麼的真的太臃腫了。隨便記錄點用到的操作。把乙個list中物件某個字段值重複的合併只去乙個值,例子id重複 arraylistcollect records1.stream collect collectors.collectingandthen ...

Stream流 方法引用

流式思想 類似於 生產流水線 模型就是每乙個位置 延遲方法 返回型別是stream介面自身型別的方法,可以鏈式程式設計 包括filter,map,skip等 終結方法 返回型別不再是stream介面自身型別的方法,包括count,foreach stream流常用方法 void foreach co...

Lambda和Stream流 Lambda表示式

內部類根據在類中的位置不同分為三種 1.成員內部類 在類的成員位置 2.區域性內部類 在方法中 3.匿名內部類 在方法中,是一種簡化的寫法public class outer public class demo1 區域性內部類是定義在方法中的類,只能在方法中使用,侷限性很強。所以一般不會使用。pub...