作者lueichun (= =)
看板java
標題[問題] Java Lambda、Stream API的學習資源
時間Sun Jul 5 16:41:01 2020
最近在自學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://webptt.com/m.aspx?n=bbs/java/M.1593938463.A.46C.html
1F:推 jej: Java doc? 07/05 17:07
2F:推 yoshilin: 其實多用幾次就習慣了.... 07/05 18:17
3F:→ ssccg: 其實我覺得這幾個例子都沒隱藏什麼語意和邏輯.. 07/05 22:59
4F:→ ssccg: 只是換個方法實作interface而已(anonymous class→lambda) 07/05 22:59
5F:→ johnny94: 書的話可以看看 Modern Java in Action 07/06 00:20
7F:推 swpoker: 其實很不太一樣啊 07/06 08:05
8F:推 kewang: intellij 應該有可以把 lambda 轉成 anonymous class 的功 07/06 09:25
9F:→ kewang: 能,轉回去看一次應該就能大概理解 07/06 09:25
11F:推 dodo6200: 建議讀一下functional programming 有助於你了解這些api 07/11 22:50
12F:推 darrenlee1: 推Modern Java in Action 07/15 02:08
13F:→ y3k: 我第一個反應是這個需要記嗎XD 08/23 11:45