看板 java 關於我們 聯絡資訊
最近在自學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
jej: Java doc? 07/05 17:07
yoshilin: 其實多用幾次就習慣了.... 07/05 18:17
ssccg: 其實我覺得這幾個例子都沒隱藏什麼語意和邏輯.. 07/05 22:59
ssccg: 只是換個方法實作interface而已(anonymous class→lambda) 07/05 22:59
johnny94: 書的話可以看看 Modern Java in Action 07/06 00:20
johnny94: 影片可以看看這個 https://youtu.be/F02LKnWJWF4 07/06 00:20
swpoker: 其實很不太一樣啊 07/06 08:05
kewang: intellij 應該有可以把 lambda 轉成 anonymous class 的功 07/06 09:25
kewang: 能,轉回去看一次應該就能大概理解 07/06 09:25
dodo6200: 建議讀一下functional programming 有助於你了解這些api 07/11 22:50
darrenlee1: 推Modern Java in Action 07/15 02:08
y3k: 我第一個反應是這個需要記嗎XD 08/23 11:45