[問題] Java Lambda、Stream API的學習資源

看板java作者 (= =)時間4年前 (2020/07/05 16:41), 編輯推噓6(607)
留言13則, 10人參與, 4年前最新討論串1/1
最近在自學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語法呢?? 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.167.52.138 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/java/M.1593938463.A.46C.html

07/05 17:07, 4年前 , 1F
Java doc?
07/05 17:07, 1F

07/05 18:17, 4年前 , 2F
其實多用幾次就習慣了....
07/05 18:17, 2F

07/05 22:59, 4年前 , 3F
其實我覺得這幾個例子都沒隱藏什麼語意和邏輯..
07/05 22:59, 3F

07/05 22:59, 4年前 , 4F
只是換個方法實作interface而已(anonymous class→lambda)
07/05 22:59, 4F

07/06 00:20, 4年前 , 5F
書的話可以看看 Modern Java in Action
07/06 00:20, 5F

07/06 00:20, 4年前 , 6F
影片可以看看這個 https://youtu.be/F02LKnWJWF4
07/06 00:20, 6F

07/06 08:05, 4年前 , 7F
其實很不太一樣啊
07/06 08:05, 7F

07/06 09:25, 4年前 , 8F
intellij 應該有可以把 lambda 轉成 anonymous class 的功
07/06 09:25, 8F

07/06 09:25, 4年前 , 9F
能,轉回去看一次應該就能大概理解
07/06 09:25, 9F

07/07 11:47, 4年前 , 10F

07/11 22:50, 4年前 , 11F
建議讀一下functional programming 有助於你了解這些api
07/11 22:50, 11F

07/15 02:08, 4年前 , 12F
推Modern Java in Action
07/15 02:08, 12F

08/23 11:45, 4年前 , 13F
我第一個反應是這個需要記嗎XD
08/23 11:45, 13F
文章代碼(AID): #1V0P8VHi (java)
文章代碼(AID): #1V0P8VHi (java)