Skip to content

Commit 09b9b45

Browse files
committed
🍱 update lambda3 video url
1 parent aab61ff commit 09b9b45

File tree

3 files changed

+95
-3
lines changed

3 files changed

+95
-3
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ java 8 改变了我们思考和编码的方式,在这里你可以学习到 Jav
2222
|:-----:|:--------|:-------|:-------|
2323
|第 1 课 | [课程介绍](https://github.com/biezhi/learn-java8) | [哔哩哔哩](https://www.bilibili.com/video/av19287893/index_1.html#page=1) ¦ [Youtube](https://youtu.be/A733pQxiEDk) ||
2424
|第 2 课 | [Java 8 的发展](https://github.com/biezhi/learn-java8/blob/master/java8-growing/README.md) | [哔哩哔哩](https://www.bilibili.com/video/av19287893/index_2.html#page=2) ¦ [Youtube](https://youtu.be/fHhgm1AZzhs) | [java8-growing](https://github.com/biezhi/learn-java8/tree/master/java8-growing/src/main/java/io/github/biezhi/java8/growing) |
25-
|第 3 课 | [理解 lambda](https://github.com/biezhi/learn-java8/blob/master/java8-lambda/README.md) | [哔哩哔哩](https://www.bilibili.com/video/av19287893/index_3.html#page=3) ¦ [Youtube](https://youtu.be/1T2Z9eDowjY) | [java8-lambda](https://github.com/biezhi/learn-java8/tree/master/java8-lambda/src/main/java/io/github/biezhi/java8/lambda/lesson1) |
26-
|第 4 课 | [初尝 lambda](https://github.com/biezhi/learn-java8/blob/master/java8-lambda/README.md) | [哔哩哔哩](https://www.bilibili.com/video/av19287893/index_4.html#page=4) ¦ [Youtube](https://youtu.be/nzATBaLNzm8) | [java8-lambda](https://github.com/biezhi/learn-java8/tree/master/java8-lambda/src/main/java/io/github/biezhi/java8/lambda/lesson2) |
27-
|第 5 课 | [lambda 进阶](https://github.com/biezhi/learn-java8/blob/master/java8-lambda/README.md) | 哔哩哔哩 ¦ Youtube | |
25+
|第 3 课 | [理解 lambda](https://github.com/biezhi/learn-java8/blob/master/java8-lambda/README.md) | [哔哩哔哩](https://www.bilibili.com/video/av19287893/index_3.html#page=3) ¦ [Youtube](https://youtu.be/1T2Z9eDowjY) | [lambda1](https://github.com/biezhi/learn-java8/tree/master/java8-lambda/src/main/java/io/github/biezhi/java8/lambda/lesson1) |
26+
|第 4 课 | [初尝 lambda](https://github.com/biezhi/learn-java8/blob/master/java8-lambda/README.md) | [哔哩哔哩](https://www.bilibili.com/video/av19287893/index_4.html#page=4) ¦ [Youtube](https://youtu.be/nzATBaLNzm8) | [lambda2](https://github.com/biezhi/learn-java8/tree/master/java8-lambda/src/main/java/io/github/biezhi/java8/lambda/lesson2) |
27+
|第 5 课 | [lambda 进阶](https://github.com/biezhi/learn-java8/blob/master/java8-lambda/README.md) | [哔哩哔哩](https://www.bilibili.com/video/av19287893/index_5.html#page=5) ¦ [Youtube](https://youtu.be/bfc5irPf9ew) | [lambda3](https://github.com/biezhi/learn-java8/tree/master/java8-lambda/src/main/java/io/github/biezhi/java8/lambda/lesson3) |
2828
|第 6 课 | 默认方法的妙用 | 哔哩哔哩 ¦ Youtube | |
2929
|第 7 课 | 干掉空指针之 Optional | 哔哩哔哩 ¦ Youtube | |
3030
|第 8 课 | 理解 Stream | 哔哩哔哩 ¦ Youtube | |

java8-lambda/src/main/java/io/github/biezhi/java8/lambda/lesson2/FunctionalDemo.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,34 @@ public class FunctionalDemo {
1818
*/
1919
public void predicate() {
2020
Predicate<String> namesStartingWithS = name -> name.startsWith("s");
21+
boolean hello = namesStartingWithS.test("Hello");
22+
// false
2123
}
2224

2325
/**
2426
* 消费数据
2527
*/
2628
public void consumer() {
2729
Consumer<String> messageConsumer = message -> System.out.println(message);
30+
messageConsumer.accept("Learn Java8"); // Learn Java8"
31+
2832
}
2933

3034
/**
3135
* 转换
3236
*/
3337
public void function() {
3438
Function<String, String> toUpperCase = name -> name.toUpperCase();
39+
toUpperCase.apply("java"); // Java
3540
}
3641

3742
/**
3843
* 提供数据
3944
*/
4045
public void supplier() {
4146
Supplier<String> uuidGenerator = () -> UUID.randomUUID().toString();
47+
System.out.println(uuidGenerator.get());
48+
4249
}
4350

4451
public static void main(String[] args) {
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package io.github.biezhi.java8.lambda.lesson3;
2+
3+
import io.github.biezhi.java8.lambda.lesson1.Project;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import java.util.function.Function;
8+
import java.util.function.Predicate;
9+
10+
/**
11+
* lambdas
12+
*
13+
* @author biezhi
14+
* @date 2018/2/10
15+
*/
16+
public class Lambdas {
17+
18+
public static List<Project> buildData() {
19+
List<Project> data = new ArrayList<>();
20+
21+
data.add(Project.builder().name("Blade").language("java").author("biezhi")
22+
.stars(3500).description("Lightning fast and elegant mvc framework for Java8").build());
23+
24+
data.add(Project.builder().name("Tale").language("java").author("biezhi")
25+
.stars(2600).description("Best beautiful java blog, worth a try").build());
26+
27+
data.add(Project.builder().name("Vue.js").language("js").author("yyx990803")
28+
.stars(83000).description("A progressive, incrementally-adoptable JavaScript framework for building UI on the web.").build());
29+
30+
data.add(Project.builder().name("Flask").language("python").author("pallets")
31+
.stars(10500).description("The Python micro framework for building web applications").build());
32+
33+
data.add(Project.builder().name("Elves").language("java").author("biezhi")
34+
.stars(200).description("Spider").build());
35+
36+
return data;
37+
}
38+
39+
public static void main(String[] args) {
40+
List<Project> projects = buildData();
41+
// List<String> names = getNames(projects);
42+
// List<String> names = getNames(projects, project -> project.getStars() > 1000);
43+
List<String> names = getNames(projects, project -> project.getStars() > 1000, project -> project.getDescription());
44+
List<Integer> stars = getNames(projects, project -> project.getStars() > 1000, ProjectFunction.buildStarFunction());
45+
System.out.println(stars);
46+
// names.forEach(name -> System.out.println(name));
47+
}
48+
49+
public static List<String> getNames(List<Project> projects) {
50+
List<String> names = new ArrayList<>();
51+
for (Project project : projects) {
52+
names.add(project.getName());
53+
}
54+
return names;
55+
}
56+
57+
public static List<String> getNames(List<Project> projects, Predicate<Project> predicate) {
58+
List<String> names = new ArrayList<>();
59+
for (Project project : projects) {
60+
if (predicate.test(project)) {
61+
names.add(project.getName());
62+
}
63+
}
64+
return names;
65+
}
66+
67+
public static <R> List<R> getNames(List<Project> projects, Predicate<Project> predicate, Function<Project, R> function) {
68+
List<R> names = new ArrayList<>();
69+
for (Project project : projects) {
70+
if (predicate.test(project)) {
71+
names.add(function.apply(project));
72+
}
73+
}
74+
return names;
75+
}
76+
77+
}
78+
79+
interface ProjectFunction<R> extends Function<Project, R> {
80+
81+
static ProjectFunction<Integer> buildStarFunction() {
82+
return Project::getStars;
83+
}
84+
85+
}

0 commit comments

Comments
 (0)