list常用操作
private
static list
init()
迴圈列印集合中每個元素
private
static
void
foreach()
private
static
void
tolist()
計算集合中age>4的元素個數
private
static
void
filter()
篩選出顏色為blue的元素
private
static
void
filter()
將集合中元素name重新組合為乙個集合
private
static
void
map(
)
集合中size最大的元素
private
static
void
max(
)
對集合中元素的age求和
private
static
void
reduce()
使用flatmap將多個stream合併為乙個stream
private
static
void
flatmap()
}}system.out.
println
(set)
;
setset1 = cools.
stream()
.flatmap
(cool -
> cool.
getlist()
.stream()
).filter
(frog -
> frog.
getage()
>4)
.map
(frog:
:getname)
.collect
(collectors.
toset()
);system.out.
println
(set1)
;}
ispresent 該方法表示乙個optional 物件裡是否有值
orelse 當optional 物件為空時,該方法提供乙個備選值
orelseget 方法適用當備選值在計算上繁瑣時使用
empty和ofnullable為工廠方法,可將乙個空值轉換成optional 物件
private
static
void
optional()
如果為空建立乙個新物件;如果為空列印「is null」
備註:盡量避免使用下面1的書寫方式,可以考慮2
1: frog frog = init().stream()
.filter(frog -> frog.getage() > 6)
.findfirst()
.orelse(null);
if (frog != null)
2: init().stream()
.filter(frog -> frog.getage() > 6)
.findfirst()
.ispresent( e -> );
private
static
void
collect()
"));
system.out.
println
(str)
;// 每種顏色的數量
mapmap1 =
init()
.stream()
.collect
(collectors.
groupingby
(frog:
:getcolor, collectors.
counting()
)); system.out.
println
(map1)
;// 每種顏色中的名稱
map> map2 =
init()
.stream()
.collect
(collectors.
groupingby
( frog:
:getcolor,
collectors.
(frog:
:getname, collectors.
tolist()
)));
system.out.
println
(map2)
;// 每種顏色中的size最大元素
map> map3 =
init()
.stream()
.collect
(collectors.
groupingby
( frog:
:getcolor,
collectors.
maxby
(comparator.
comparingdouble
(frog:
:getsize)))
);system.out.
println
(map3)
;}
執行結果
, frog
], blue=
[frog
, frog
], yellow=
[frog
, frog]}
], blue=optional[frog
], yellow=optional[frog
]}
初探java8函式式程式設計
lambda引用的是值,不是變數,所以,lambda中引用變數,必須是final變數或者既成事實上的final變數 collect tolist 方法由stream 裡的值生成乙個列表,是乙個及早求值操作 listcollected stream.of a b c collect collector...
java 8 函式式程式設計實戰
函式一二三等值的區分 只要某個值滿足以下三個條件,就能被稱為一等值。可以作為引數傳遞給函式 可以作為函式返回值 可以被賦值給變數 所以數字 字串等常用的值都是一等的。如果僅滿足第一條,而不能作為函式返回值或被賦值給變數,就稱為二等的 second class 假如三條都不滿足,則稱為三等的 thir...
java 8 函式式介面
functionalinte ce public inte ce personsearch functionalinte ce public inte ce personsearch1 functionalinte ce public inte ce personsearch2 方法的預設實現 介面...