Upgrading to Java 8——第四章 The Stream API

來源:互聯網
上載者:User

標籤:

  在這章中我們將學習Stream API,在JDK 8 中的一項新的特性。為了理解這一章的主題,你需要知道如何使用Lambda運算式和java.util.function裡的預定義的函數式介面。

  一個Stream 類似於一個管道,但它裡面運輸的不是水和石油,而是把資料從源頭運輸到目的地。根據傳遞的方式,一個stream可以是並行和並發的。並行的stream運行在多核的CPU的機器上會很有用。

  乍一看,一個stream就像是一個集合容器,但是,它不是一個資料結構用來儲存物件,它只是負責移動對象,所以,你不能把它想象成集合對象那樣往它裡面添加資料。

  使用stream的主要原因是它支援並行和並發的彙總操作。例如,你可以非常容易地從stream裡面過濾,排序或映射元素。

  Stream API的不同的類型在java.util.stream包中。其中Stream介面是這裡面最常用的stream類型。 一個Stream可以傳遞任何類型的對象,同時也有幾個特殊化的Stream:IntStream, LongStream and DoubleStream。他們都來源於BaseStream。

  下面的表格展示了一些在Stream介面中常見的方法:

方法   描述
concat  懶載入的方式串連兩個stream。返回一個新的stream,他的元素包括兩個stream的所有元素。第一個stream的元素後面緊跟著第二個stram的元素。
count  返回stream裡面元素的個數。
empty  建立並返回一個空的stream。
filter  在stream所有的元素中根據給定的斷言介面返回一個新的stream。
forEach  給stream每個元素執行一個操作。
limit  從當前的stream中根據指定最大元素的個數返回一個新的stream。
map  返回包含了應用於stream的元素的給定的方法的的結果的stream。
max  根據比較子返回stream中最大的元素。
min  根據比較子返回stream中最小的元素。
of  返回一個已經給定了值的stream。
reduce  在stream上使用唯一ID和累加器執行遞減操作。
sorted  返回一個新的使用自然排序的stream。
toArray  返回一個包含stream所有元素的數組。

 

 

 

 

 

 

 

 

 

有些stream的方法執行中間過程的操作,有的執行最終的操作。中間過程的操作會把一個stream傳輸到另一個stream中。像filter,Map,sorted等這些方法。

執行最終操作的方法會產生結果或是其他的影響。例如,count,forEach就是執行的最終結果的操作。

中間過程的操作屬於懶載入的方式,他不會真正的執行,只有是執行最終結果的才會真正在源上開始計算。

 

Upgrading to Java 8——第四章 The Stream API

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.