-
Notifications
You must be signed in to change notification settings - Fork 54
/
Copy pathLambda1.java
78 lines (37 loc) · 1.54 KB
/
Lambda1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package streams;
import java.util.Comparator;
import java.util.function.Consumer;
public class Lambda1 {
@SuppressWarnings("unused")
public static void main(String[] args) {
Comparator<Employee> byName = new Comparator<Employee>() {
public int compare(Employee a, Employee b) {
return a.getName().compareTo(b.getName());
}
};
// Our first lambda expression
Comparator<Employee> byNameLambda1 =
(Employee a, Employee b) -> { return a.getName().compareTo(b.getName()); };
// Removing parameter types
Comparator<Employee> byNameLambda2 =
(a, b) -> { return a.getName().compareTo(b.getName()); };
// Removing braces and 'return'
Comparator<Employee> byNameLambda3 =
(a, b) -> a.getName().compareTo(b.getName());
// You cannot remove braces and leave 'return'
// Comparator<Employee> byNameLambda4 =
// (a, b) -> return a.getName().compareTo(b.getName());
Comparator<Employee> byNameLambda4 =
(a, b) -> { return a.getName().compareTo(b.getName()); };
// Expression with no parameters
Runnable r = () -> { System.out.println("A compact Runnable!"); };
Thread t1 = new Thread(r);
// No need to even mention Runnable
Thread t2 = new Thread( () -> { System.out.println("An implicit Runnable!"); } );
// No need for braces here
Thread t3 = new Thread( () -> System.out.println("An implicit Runnable!") );
// Expression with one parameter
Consumer<String> lengthPrinter =
s -> System.out.println(s.length());
}
}