Stream流 (全方位 分析原始碼)

2021-10-17 04:42:52 字數 3438 閱讀 6391

2.basestream

3.stream流

***stream介面(longstream)

了解下forkjoin框架

檢視注釋基本就可以了解大部分。

並行流採用鏈式程式設計lambda表示式stream流式計算函式式介面

在jdk1.8以後,加入流stream

//collection介面中也加入轉換方法

list

list =

newarraylist

();stream

parallelstream = list.

stream()

....

....

.stream

parallelstream = list.

parallelstream()

....

..這是乙個list集合 通過stream

()方法變成序列流,

通過parallelstream

()方法變成並行流。

先看一下繼承basestream的介面

stream介面是繼承於basestream

通過這三個方法,直接轉換

intstream maptoint

(tointfunction;

longstream maptolong

(tolongfunction;

doublestream maptodouble

(todoublefunction<

?;

點入longstream介面

//過濾 斷定型介面

stream

filter

(predicate<

?super t> predicate)

;//函式型

stream

map(function<

?super t,

?extendsr;

//將多個stream連線成乙個stream,這時候不是用新值取代stream的值,與map有所區別,這是重新生成乙個stream物件取而代之。

stream

flatmap

(function<

?super t,

?extends

stream

<

?extendsr;

intstream flatmaptoint

(function<

?super t,

?extends

intstream

;longstream flatmaptolong

(function<

?super t,

?extends

longstream

;doublestream flatmaptodouble

(function<

?super t,

?extends

doublestream

;//排序 (和斷定型是否排序)

stream

sorted()

;stream

sorted

(comparator<

?super t> comparator)

;的操作是返回乙個新的stream的,且設計的初衷是用來debug除錯的,因此使用steam.peek()必須對流進行一次處理再產生乙個新的stream。

stream

peek

(consumer<

?super t> action)

;//傳入消費 不需要進行別的操作 無返回

void

foreach

(consumer<

?super t> action)

;// 1.恒等式累積函式的恒等式值

// 2.函式式介面 傳入2個引數,返回乙個引數

t reduce

(t identity, binaryoperator

accumulator)

;等等方法

//需要傳入開始節點和結束節點兩個引數,返回的是乙個有序的longstream。

//包含開始節點和結束節點兩個引數之間所有的引數,間隔為1.

range

(long startinclusive,

final

long endexclusive)

//和上面方法類似,只是包含了endexclusive邊界值

rangeclosed

(long startinclusive,

final

long endexclusive)

//轉換成並行流

parallel()

等等

在forkjoin框架下,進行使用

forkjoin框架

大量資料中:效率stream並行流》forkjoin>for

少了資料中:for>效率stream並行流》forkjoin

SEO如何全方位分析競爭對手

抄襲是網際網路的屬性之一,就像免費也是網際網路的屬性。但我們今天要說的不是網際網路的抄襲,是在seo 上如何全方位的研究乙個成功的seo站點,抄襲別人 的seo並不能夠給自己的 發揮優勢。絕大部分的seo,開始的時候都是從抄襲開始的,因為乙個seoer大部分關於技術的應用,最終都是要落實到 的各個頁...

樹的知識點全方位分析彙總

平衡二叉樹 它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。滿二叉樹 除最後一層外,每一層上的所有結點都有兩個子結點。即在滿二叉樹的第k層上有2 k 1 個結點。深度為n的滿二叉樹有2 k 1個結點。單枝二叉樹 單枝樹是指非葉子節點 只有乙個孩子的特殊二叉...

nodejs流基類原始碼分析

流是對資料生產,消費的一種抽象,今天先分析一下流基類的實現 const ee require events const util require util 流的基類 function stream 繼承事件訂閱分發的能力 util.inherits stream,ee 流的基類只提供了乙個函式就是p...