環境
java1.8、idea2018、springboot
幫助人群
java軟件工程師、java後端開發、準備面試的java軟件開發、jdk1.8新特性
學習目標
掌握java之Lambda函數式編程 filter、map等最常見用法;
參考樣例代碼你也可以寫出自己的Lambda函數式代碼;
以前我寫過一篇Lambda函數式編程文章,現在我在補充下。
代碼舉例
jdk1.8 Lambda函數式編程在應用開發中最常見的例子如下
轉換
轉換加過濾1
轉換加過濾2
轉換加過濾3
匹配指定一條
防NPE1
Optional.ofNullable(集合對象).orElse(空集合)
注意默認空值,建議用下面這兩個,一個空集合、一個空字符。
new 集合會消耗資源。
防NPE2
除了上面防集合對象null,還有防集合裡元素null
利用 filter(Objects::nonNull)
map遍歷
比較簡潔啦
list去重
也是很簡潔啊,stream().distinct()
方法引用
上面的防空2,filter(Objects::nonNull) 就是方法引用,代碼簡潔到巔峰了
嵌套循環扁平話
這個平時用的我用的很少
father.stream().map(o->o.getChildAs()).flatMap(List::stream)
.map(gg->gg.getName()).forEach(
System.out::println);
注意
filter和map都可以連續多個在一起用的,
如filter(XXX).filter(XXXX)
map(XXX),map(XXXX)
流式語法,程序員們學下吧
閱讀更多 程序汪汪 的文章