1.流操作
java.util.stream.Stream中的Stream接口定義了很多操作。大致可以分爲兩大類。
看一段代碼
可以看到兩類操作
1.1 中間操作
filter、map、limit之類的中間操作會返回另一個流。中間操作一般都可以合併起來,在終端操作時一次性全部處理。
1.2 終端操作
終端操作會從流的流水線上生成結果。返回結果可以是任何值,比如list、integer,甚至是void,比如打印system.out.println或者開啓線程。
2.使用流
使用流,一般包括三件事
- 一個數據源(如集合)來執行一個查詢
- 一箇中間操作鏈,形成一條流的流水線
- 一個終端操作,執行流水線,並生成結果
流的流水線背後的理念類似於構建器模式。在建造器模式中有一個調用鏈來設置一套配置(對流來說這就是一箇中間操作鏈),接着是調用build方法(對流來說就是終端操作)
3.總結
- 流是“從支持數據處理操作的源 -> 生成的一系列元素”
- 流通過內部迭代的方式:filter/map/sorted等操作被抽象掉了
- 流操作:中間操作和終端操作
- 中間操作會返回一個流,並可以連接在一起,但是不會產生結果
- 終端操作會返回一個非流的值,並處理流水線返回結果