Skip to content

Commit 7256707

Browse files
author
Beck
committed
lamdba not
1 parent 1b05c4e commit 7256707

5 files changed

Lines changed: 40 additions & 16 deletions

File tree

src/main/java/com/winterbe/java8/samples/lambda/FunctionInterface.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
/**
44
* @author Benjamin Winterberg
5+
* @Message 可用于实现逻辑与调用的分离,在一处对functionInterface进行定义,在另一处抽象调用
56
*/
67
public class FunctionInterface {
78

src/main/java/com/winterbe/java8/samples/lambda/InnerFunctionInterface.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22

33
/**
44
* @author Benjamin Winterberg
5+
* @Message 1、内部FunctionInterface用法,实现与调用分离;2、lamdba内部可以操作类成员变量
56
*/
67
public class InnerFunctionInterface {
78

8-
static int outerStaticNum;
9+
private static int outerStaticNum;
910

10-
int outerNum;
11+
private int outerNum;
1112

1213
void testScopes() {
1314
int num = 1;

src/main/java/com/winterbe/java8/samples/lambda/InterfaceUsage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
/**
44
* @author Benjamin Winterberg
5+
* @Message interface default define;static define
56
*/
67
public class InterfaceUsage {
78

src/main/java/com/winterbe/java8/samples/lambda/ArraysLambda.java renamed to src/main/java/com/winterbe/java8/samples/lambda/LambdaArraySort.java

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,40 +9,62 @@
99
/**
1010
* @author Benjamin Winterberg
1111
*/
12-
public class ArraysLambda {
12+
public class LambdaArraySort {
1313

1414
public static void main(String[] args) {
1515
List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");
16+
lambda4Sort(names, Collections.reverseOrder());
17+
System.out.println(names);
18+
1619

1720
usualSort(names);
21+
System.out.println(names);
1822
lambda1Sort(names);
23+
System.out.println(names);
1924
lambda2Sort(names);
25+
System.out.println(names);
2026
lambda3Sort(names);
2127
System.out.println(names);
2228

23-
names.sort(Collections.reverseOrder());
24-
System.out.println(names);
2529

2630
List<String> names2 = Arrays.asList("peter", null, "anna", "mike", "xenia");
27-
names2.sort(Comparator.nullsLast(String::compareTo));
31+
lambda4Sort(names2, Comparator.nullsLast(String::compareTo));
2832
System.out.println(names2);
2933

30-
List<String> names3 = null;
31-
Optional.ofNullable(names3).ifPresent(list -> list.sort(Comparator.naturalOrder()));
34+
35+
List<String> names3 = Arrays.asList("2", "1");
36+
lambda5Sort(names3);
3237
System.out.println(names3);
3338
}
3439

40+
private static void lambda5Sort(List<String> names3) {
41+
Optional.ofNullable(names3).ifPresent(list -> list.sort(Comparator.naturalOrder()));
42+
}
43+
44+
private static void lambda4Sort(List<String> names2, Comparator<String> c) {
45+
names2.sort(c);
46+
}
47+
48+
/**
49+
* simple
50+
*/
3551
private static void lambda3Sort(List<String> names) {
36-
Collections.sort(names, (a, b) -> b.compareTo(a));
52+
Collections.sort(names, (a, b) -> a.compareTo(b));
3753
}
3854

55+
/**
56+
* parameter type
57+
*/
3958
private static void lambda2Sort(List<String> names) {
4059
Collections.sort(names, (String a, String b) -> b.compareTo(a));
4160
}
4261

62+
/**
63+
* method body
64+
*/
4365
private static void lambda1Sort(List<String> names) {
4466
Collections.sort(names, (String a, String b) -> {
45-
return b.compareTo(a);
67+
return a.compareTo(b);
4668
});
4769
}
4870

src/com/winterbe/java8/samples/lambda/Lambda5.java renamed to src/main/java/com/winterbe/java8/samples/lambda/LambdaForEach.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@
66
/**
77
* Created by grijesh
88
*/
9-
public class Lambda5 {
9+
public class LambdaForEach {
1010

1111
//Pre-Defined Functional Interfaces
1212
public static void main(String... args) {
1313

1414
//BiConsumer Example
15-
BiConsumer<String,Integer> printKeyAndValue
16-
= (key,value) -> System.out.println(key+"-"+value);
15+
BiConsumer<String, Integer> printKeyAndValue = (key, value) -> System.out.println(key + "-" + value);
1716

18-
printKeyAndValue.accept("One",1);
19-
printKeyAndValue.accept("Two",2);
17+
printKeyAndValue.accept("One", 1);
18+
printKeyAndValue.accept("Two", 2);
2019

2120
System.out.println("##################");
2221

@@ -26,7 +25,7 @@ public static void main(String... args) {
2625
dummyValues.put("Two", 2);
2726
dummyValues.put("Three", 3);
2827

29-
dummyValues.forEach((key,value) -> System.out.println(key+"-"+value));
28+
dummyValues.forEach((key, value) -> System.out.println(key + "-" + value));
3029

3130
}
3231
}

0 commit comments

Comments
 (0)