JAVA8新特性Stream學習中

2021-08-26 08:40:39 字數 1065 閱讀 2234

stream是資料渠道,用於運算元據源(集合,陣列等)所生成的元素序列。

"集合講的是資料,流講的是計算"

注:①stream自己不會儲存元素

②stream不會改變源物件。相反,他們會返回乙個持有結果的新的stream

③stream操作是延遲執行的。這意味著他們會等到需要結果的時候才執行。

步驟:①:建立stream(資料來源:如集合,陣列,獲得乙個流)

②:中間操作(乙個中間操作鏈,對資料來源的資料進行處理)

③:終止操作,終端操作(乙個 終止操作,執行中間操作鏈,並產生結果)

public class teststream

}

多個中間操作可以連線起來形成乙個流水線,除非流水線上觸發終止操作,否則中間操作不會執行任何的處理!而在終止操作時一次性全部處理,稱為""惰性求職。

public class streamtest2 );

//終止操作:一次性執行全部內容,即"惰性求值"

stream1 .foreach(system.out::println);

}//外部迭代

public void test2()

}@test

public void testlimit())

.limit(2)

//終止操作

.foreach(system.out::println);

}//跳過前2個取

@test

public void testskip()

//去重操作

@test

public void testdistinct()

//對映操作 (map -- 接收lambda,將元素轉化成其他形式或提取資訊,接收乙個函式作為引數,

該函式會被應用到每個元素上,並將其對映成乙個新的元素。

flatmap -- 接收乙個函式作為引數,將流中的每乙個值都換成另乙個流,然後把所有

流連線成乙個流)

@test

public void test23()

}

java8新特性之Stream 終止操作的多種方式

方法 簡述allmatch predicate p 檢查是否匹配所有元素 anymatch predicate 檢查是否至少匹配乙個元素 nonematch predicate p 檢查是否沒有匹配所有元素 findfirst 返回第乙個元素 findany 返回當前流中的任意元素 count 返回...

java8新特性之一lambda

lambda結合函式式介面使用,函式式介面 functional inte ce 就是乙個有且僅有乙個抽象方法,但是可以有多個非抽象方法的介面。1 可選型別宣告 不需要宣告引數型別,即直接可以寫引數,不需要宣告型別,編譯器可以自動識別型別 2 可選的引數圓括號 乙個引數可以不要圓括號,多個引數需要圓...

Java8 新特性 方法引用 一

package cn.com.zq.demo03.reference.test03.reference 方法引用 練習 使用系統已經存在的 方法 進行引用 為什麼要有方法引用?主要是對lambda表示式的優化 當 中 已經存在 對應的類 對應的物件 對應的this 對應的super 的時候 我們可以...