Java 8 的 流的學習總結

1、首先談談什麼是流?

流是從支持數據處理操作的源中生成的元素序列。

拆分理解這句話:

  • 元素序列:流提供了一個接口,可以訪問特定元素類型的一組有序值;
  • :被處理的數據,從有序集合生成流時會保留原有的順序;由列表生成的流,其元素順序和列表一致;
  • 數據處理操作:與數據庫操作類似,流操作可以順序執行,也可以並行執行;
  • 流水線:很多流操作本身會返回一個流,這樣多個操作就可以鏈接起來,形成一條大的流水線;
  • 內部迭代:與使用迭代器顯示迭代的集合不同,流的迭代操作是在背後進行的;

流有什麼好處?或者我們爲什麼要使用流?

流允許你以使用聲明性的方式處理數據集合,而不是臨時編寫一個實現。具體好處如下:

  • 聲明性 - 更簡潔、易讀;
  • 可複合 - 更靈活;
  • 可並行 - 性能更好;

2、流與集合對比

  • 集合是一個內存中的數據結構,包含數據結構中目前所有的值;
  • 而流是概念上固定的數據結構,其元素是按需加載的;
  • 流只能被遍歷一次,遍歷完之後就被消費掉了;
  • 遍歷數據的方式也是他們一個關鍵區別:
    • Collection 需要用戶去編碼迭代,這稱爲外部迭代;
    • Streams 庫使用內部迭代,不需要去編碼,它內部幫忙把這些事情做了;
  • 集合主要是訪問數據,而流的目的在於數據計算

3、流操作、使用流

流主要兩種類別的操作:中間操作終端操作

中間操作形成流水線、而終端操作則是從流水線中生成結果。

使用流則包含三個要素:

  • 數據源;
  • 中間操作鏈;
  • 終端操作;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章