JDK8+的lambda(λ)表示式特性

weixin_34249678發表於2018-01-29

上週進行了JDK8的stream自帶的一些簡便方法,現在歸為文件。

1.player類

10055699-e83ce0b25b6b9c64.png

2.Optional的使用

2.1 ofNullable

10055699-fc64d613f17c747c.png
判空,若為null則取orElse中值

2.2 orElseThrow

10055699-f45d6653c03ec240.png
判空,若為null則丟擲異常

2.3 isPresent

10055699-21d2f78cfa04cb50.png
判空,獲取是否存在值的判斷

3.Stream的使用

10055699-569ff4b185e323a9.png
整體圖,不清晰?沒關係,還有細分圖

3.1 迴圈

10055699-1404ba5e5b72535b.png
迴圈,以players為資料來源

3.2 重組

10055699-c325429e809837a0.png
重組集合,更改成Id的list或者name的list,map中的值可隨意拼接

3.3 去重

10055699-2b81d16a7ddefad2.png
去重distinct,下面的所有方法均以intList為資料來源

3.4 函式

10055699-a4e9216b40c283e0.png
計數\求和\求最大值\求最小值\求平均值

3.5 捨去

10055699-12a05b25ddba179f.png
捨去

3.6 擷取

10055699-f3eada872923c2b4.png
擷取limit

3.7 正序和倒序

10055699-fffe24fd46497057.png
排序
10055699-ec1c8ae097e9f170.png
倒序

3.8 判斷

10055699-cf5b31b8ddd639ea.png
判斷

3.9 過濾

10055699-b012938f33ea251a.png
過濾

3.10 取值

10055699-e195c1446e96b34c.png
取值,findAny一般也會取第一個

3.11 加工

10055699-2cad0dfd2c8bee9e.png
加工,附帶進行一些操作

3.12 匯聚

10055699-5c356b5c3001b132.png
匯聚,Collectors.toXXX及sum、max等方法都是匯聚實現的

3.13 流重組

10055699-6821900d14a09ea3.png
流重組flatMap

3.14 並行流(上次討論會漏掉了)

10055699-347caf2639a58839.png
並行流 parallelStream,並行情況下用 parallelStream代替Stream

相關文章