最近在自學Java Lambda、Stream API,在網路上找到不少資源,不過似乎不少資源都是直接舉出問題或功能,然後就用很簡潔的語法來完成某個功能。例如遍歷某個list:
List<String> list = new ArrayList<>();
list.add("test1");
list.add("test2");
list.add("test3");
list.forEach(s -> System.out.println(s));
或是計算兩個整數的差:
Comparator<Integer> com= (x,y)->x-y;
int result = com.compare(5,2);
抑或是換個方式實作計算兩個整數的差:
Comparator<Integer> com= Math::substract;
int result = com.compare(5,2);
這樣學習,似乎只是在遇到問題後,把對應的語法記下來,一旦遇到沒有見過的問題或是功能就沒想法了。不過我在網路上尋找學習的資源,大都是長成這樣,所以我就遇到瓶頸了。
而且既然lambda或是stream API可以用很簡潔的方式來完成各種功能,那就表示其實一句code就隱藏了不少語意和邏輯在裡面,這部分我也很少看到相關的介紹,看久了就覺得自己好像只是在背語法,沒有真正理解這些語法的意義。
那請問有沒有其他資源,可以跳脫這種模式,用比較詳細的解說或是用更進階,可以一步步拆解來說明的例子來介紹lambda或是stream API語法呢??謝謝。
在台灣,寫Java的人,不能不知道良葛格的學習筆記。
認識 Lambda/Closure(1)從 JavaScript 的函式物件談起
認識 Lambda/Closure(2)什麼是 Closure?
認識 Lambda/Closure(3)Python 對 Lambda/Closure 的支援
認識 Lambda/Closure(4)從 Scala 中借鏡
認識 Lambda/Closure(5)Java 的稻草人提案
認識 Lambda/Closure(6)一級函式與 Lambda 演算
認識 Lambda/Closure(7)JDK8 Lambda 語法
認識 Lambda/Closure(8)方法參考與建構式參考
我超強,已經有了底子,想知道底層看這篇
https://zhuanlan.zhihu.com/p/28093333
我一個菜,但我有耐心,我想知道原理,但需要淺顯易懂看這篇
https://www.zhihu.com/question/20125256/answer/324121308
一堆文字是三小,我只要知道遍歷,過濾,怎麽用就好了,只要會用看這篇
https://blog.csdn.net/qq_37176126/article/details/81273195
我瞎機吧強一把的,我不想知道底層,我只想自己寫lambda,看這篇
https://www.zhihu.com/question/37872003/answer/1009015660
依您的需求看吧
可以的話給個最佳解,謝囉