Java8新特性:Stream介绍和总结
Java8新特性:Stream介紹和總結(jié)
什么是Stream
流(Stream)是數(shù)據(jù)渠道,用于操作數(shù)據(jù)源(集合、數(shù)組等)所生成的元素序列。
集合講的是數(shù)據(jù),流講的是計(jì)算
注意:
Stream操作的三個(gè)步驟
- 創(chuàng)建Stream
一個(gè)數(shù)據(jù)源(如:集合、數(shù)組),獲取一個(gè)流 - 中間操作
一個(gè)中間操作鏈,對(duì)數(shù)據(jù)源的數(shù)據(jù)進(jìn)行處理 - 終止操作(終端操作)
一個(gè)終止操作,執(zhí)行中間操作鏈。并產(chǎn)生結(jié)果
示意圖如下:
創(chuàng)建Stream
default Stream stream():返回一個(gè)順序流
default Stream parallelStream():返回一個(gè)并行流
有數(shù)組創(chuàng)建流
static Stream stream(T[] array):返回一個(gè)流
由值創(chuàng)建流
public static Stream of(T… values):返回一個(gè)流
由函數(shù)創(chuàng)建流:創(chuàng)建無(wú)限流
- 迭代
public static Stream iterate(final T seed,final UnaryOperator f)
- 生成
public static Stream generate(Supplier s)
Stream的中間操作
多個(gè)中間操作可以連接起來(lái)形成一個(gè)流水線(xiàn),除非流水線(xiàn)上觸發(fā)終止操作,否則中間操作不會(huì)執(zhí)行任何處理!而在終止操作時(shí)一次性全部處理,稱(chēng)為“惰性求值”
Stream的終止操作
終止操作會(huì)從流的流水線(xiàn)生成結(jié)果。其結(jié)果可以是任何不是流的值,例如List、Integer 甚至是void。
Collector接口中方法的實(shí)現(xiàn)決定了如何對(duì)流執(zhí)行收集操作(如收集到List、Set、Map)。但是Collector實(shí)用類(lèi)提供了很多靜態(tài)方法可以方便的收集常見(jiàn)實(shí)例
總結(jié)
以上是生活随笔為你收集整理的Java8新特性:Stream介绍和总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 香帅的北大金融学课笔记19 -- 科技金
- 下一篇: 香帅的北大金融学课笔记17 -- 公司治