Stream 學習筆記

2021-10-12 08:22:54 字數 2446 閱讀 6618

用於對集合資料進行操作(執行非常複雜的查詢、過濾和對映資料等)

用於運算元據源(集合、陣列等)所生成的元素序列

注意:

①stream 不會儲存元素。

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

③stream 操作是延遲執行,需要結果的時候才執行

collection 介面:

default streamstream() : 返回乙個順序流efault streamparallelstream():返回乙個並行流

陣列(arrays)

static streamstream(t array)public static intstream stream(int array)public static longstream stream(long array)public static doublestream stream(double array)

stream方法

public staticstreamiterate(final t seed, final unaryoperatorf)- 迭代型

public staticstreamgenerate(suppliers- supplier產生

對資料來源的資料進行處理

刪選切片

對映

//map

stream

str = emps.

stream()

.map

((e)

-> e.

getname()

)stream

stream = strlist.

stream()

.map

(string:

:touppercase)

;//flatmap - 類似多個list合併為乙個list

stream

stream3 = strlist.

stream()

.flatmap

(teststreamapi1:

:filtercharacter)

;public

static stream

filtercharacter

(string str)

return list.

stream()

;}

排序

regionlist.stream().sorted(comparator.comparing(regiondto::getcode)).collect(collectors.tolist());

執行中間操作鏈,並產生結果(結果可以是任何不是流的值)

查詢匹配

歸約

list

list = arrays.

aslist(1

,2,3

,4,5

,6,7

,8,9

,10);

integer sum = list.

stream()

.reduce(0

,(x, y)

-> x + y)

;optional

op = emps.

stream()

.map

(employee:

:getsalary)

.reduce

(double:

:sum)

;optional

sum = emps.

stream()

.map

(employee:

:getname)

.flatmap

(teststreamapi1:

:filtercharacter)

.map

((ch)

->).

reduce

(integer:

:sum)

;

收集

Nodejs學習筆記之Stream模組

nodejs的fs模組並沒有提供乙個copy的方法,但我們可以很容易的實現乙個,這種方式是把檔案內容全部讀入記憶體,然後再寫入檔案,對於小型的文字檔案,這沒有多大問題,比如grunt file copy就是這樣實現的。一,開篇分析 流是乙個抽象介面,被 node 中的很多物件所實現。比如對乙個 ht...

學習筆記day 4 Stream流練習

public class main streamstm stream.of a string array streamstream stream.of array 將集合轉換成stream流 listlist new arraylist list.add 張三三 list.add 張四四 list....

Stream 模組學習 七

在這之前實現了流的流動模式,這裡實現乙個流的暫停模式 let eventemitter require events let fs require fs class readablereadstream extends eventemitter 關閉檔案 destory 開啟檔案啊 open rea...