Skip to content

Commit e158516

Browse files
committed
Lambda
1 parent 27390b4 commit e158516

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ Java8 Learning (java8学习) <br>
1212
├── com.xu.java8.Stream // java8-Stream接口
1313
1414
- java8-Optional类
15+
1516
[Optional类的一些基本用法](https://github.com/MyHerux/java-java8-learning/blob/master/src/main/java/com/xu/java8/Optional/Optional.md)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
##Lambda表达式
2+
- Lambda表达式的使用
3+
java8以前的字符串排列,创建一个匿名的比较器对象Comparator然后将其传递给sort方法
4+
```
5+
List<String> names= Arrays.asList("peter", "anna", "mike", "xenia");
6+
Collections.sort(names, new Comparator<String>() {
7+
@Override
8+
public int compare(String a, String b) {
9+
return b.compareTo(a);
10+
}
11+
});
12+
```
13+
java8使用lambda表达式就不需要匿名对象了
14+
```
15+
Collections.sort(names,(String a,String b)->{return b.compareTo(a);});
16+
```
17+
简化一下:对于函数体只有一行代码的,你可以去掉大括号{}以及return关键字
18+
```
19+
Collections.sort(names,(String a,String b)->b.compareTo(a));
20+
```
21+
Java编译器可以自动推导出参数类型,所以你可以不用再写一次类型
22+
````
23+
Collections.sort(names, (a, b) -> b.compareTo(a));
24+
````
25+
```
26+
##:[xenia, peter, mike, anna]
27+
```
28+
对于null的处理
29+
```
30+
List<String> names2 = Arrays.asList("peter", null, "anna", "mike", "xenia");
31+
names2.sort(Comparator.nullsLast(String::compareTo));
32+
System.out.println(names2);
33+
##:[anna, mike, peter, xenia, null]
34+
```

0 commit comments

Comments
 (0)