JDK 1 8中關於Stream介面的一些易混淆點

2022-09-09 11:06:24 字數 1286 閱讀 6571

parallelstream:

collection的

stream方法會返回序列流,而parallelstream會返回並行流,並行流在處理簡單資料時效率較高,其底層通過fork/join實現,

會牽扯到多執行緒的複雜性問題。

並行流使用的執行緒數目可以通過jvm啟動引數進行配置,乙個不好的並行流會阻塞其他並行流,使之在執行時成為序列。

flatmap:
stream的

map方法和flatmap方法的入參都是function介面,flatmap規定了介面的第二個泛型必須繼承stream,

map方法返回乙個 function介面返回的物件 所組成的stream,

flatmap返回乙個將 function介面返回的stream物件 中所包含的每個物件全部裝載進去的合併的stream

peek:

returns a stream consisting of the elements of this stream, additionally performing

the provided action on each element

as elements are consumed from the resulting stream.

返回乙個包含當前stream中所有元素的stream,並且會在返回的元素被消費時進行函式所給定的操作。

reduce

乙個入參的方法(binaryoperatoraccumulator),

兩個入參的方法(t identity,binaryoperatoraccumulator),reduce方法,

u reduce(u identity, bifunctionaccumulator,binaryoperatorcombiner);

允許返回與當前流中資料型別不同的值,計算過程由第二個引數控制,計算方式類似單參的reduce方法,

三參reduce方法中的第三個引數用於在並行流parallelstream中合併平行計算的結果。

以上內容大多來自對jdk原碼注釋的理解翻譯

JDK1 8介面新增

1 預設方法 即被default關鍵字修飾的方法 public class demo01 介面 inte cea 實現類 class demo implements a 構成重寫 public void dsiplay 使用 通過實現類物件使用,實現類可以對預設方法進行重寫,呼叫重寫後的方法 注 只...

jdk1 8常用總結

1.查詢集合裡的第乙個物件 filter 例 查詢listlist 中username為小明的物件t list.stream filter findfirst 1 list.stream filter e 小明 equals e.getusername findfirst 2.查詢滿足條件的物件,並...

關於 JDK1 7 和 JDK1 8 的區別

jdk1.8 在 jdk1.7的基礎上新增了如下功能 1 default關鍵字 實現的介面中如果有 default 修飾的方法,實現類可以不重寫此方法 2 lambda 表示式,函式式程式設計,函式式程式設計就是一種抽象程度很高的程式設計正規化,對一些只使用一次的介面的編碼進行了優化 3 函式式介面...