用於對集合資料進行操作(執行非常複雜的查詢、過濾和對映資料等)
用於運算元據源(集合、陣列等)所生成的元素序列
注意:collection 介面:①stream 不會儲存元素。
②stream 不會改變源物件,會返回乙個持有結果的新stream。
③stream 操作是延遲執行,需要結果的時候才執行
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...