Stream常見操作API介紹

Stream常見操作API介紹

1、聚合操作

2、stream的處理流程

 數據源    
 數據轉換
 獲取結果

3、獲取Stream對象

1. 從集合後數組對象中獲取
Collection.stream()
Colleatcion.parallelStream()
Array.stream(T t)
2. BufferReader
BufferReader.lines() -> stream()
3. 靜態工廠
 java.util.stream.IntStream.range()..
 java.nio.file.Files.walk()..
4. 自定構建
 java.util.Spliterator
5. 更多
 Random,ints()
 Pattern.splitAsStream()..

4、中間操作API(intermediate)

 操作結果是一個stream,中間操作可以有一個或多個連續的中間操作,需要注意的是,中間操作
 只記錄操作方式,不做具體處理,直到結束操作發生時,操作數據的最終執行
 中間操作:就是業務邏輯處理
 中間操作過程:
        無狀態:數據處理時,不受前置中間操作的影響
                  map/filter/peek/pasallel/sequential/unordered
       有狀態:數據處理時,收到前置中間操作的影響
                  distinct/sorted/limit/skip

5、終結操作\結束操作(Terminal)

 需要注意:一個stream對象,只能有一個Terminal操作,這個操作一旦發生,就會真是處理數據
 終結操作:
            非短路操作:當前的Stream對象必須處理完集合的所有數據,才能的到處理結果
                        forEach/forEachOrdered/toArray/reduce/collect/min/max/count/iterator
            短路操作:當前的Stream對象必須在處理過程中,一旦滿足某個條件,就可以得到結果
                        anyMatch/allMatch/noneMatch/findFirst/findAny等
            Short-circuiting,當無限大的Stream -> 有限大的Stream,可以使用短路操作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章