作者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/cn.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