网站备案能快速备案嘛/网站备案查询官网
1、什么是Lambda表达式
Lambda表达式是一种匿名函数,基于数学中的λ演算得名,简单地说,它是没有声明的方法,即:没有名称,但它有参数列表、方法主体、返回类型,可能还有可以抛出的异常。
它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java语言的表达能力得到了提升。
例如,拥有People对象的List集合peopleList,需要对age进行排序。
之前:
// 创建People比较器
Comparator<People> comparator = new Comparator<People>() {
@Override
public int compare(People o1, People o2) {
if (o1.getAge() > o2.getAge()) {
return 1;
} else {
return -1;
}
}
};
// 排序
Collections.sort(peopleList, comparator);
JDK1.8后,使用Lambda表达式:
// Lambda表达式方式
Comparator<People> comparator = (o1, o2) -> {
if (o1.getAge() > o2.getAge()) {
return 1;
} else {
return -1;
}
};
// 排序
Collections.sort(peopleList, comparator);
不得不承认代码更清晰、简洁了!
其实,更简洁的写法如下:
peopleList.sort(Comparator.comparingInt(People::getAge));
2、Lambda表达式语法
Lambda表达式的语法格式如下:
(parameters) -> expression
或
(parameters) ->{ statements; }
其中:
可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。
语法很简单,学会使用后,你会爱上它的!
3、Lambda表达式举例
更多请见:http://www.mark-to-win.com/tutorial/50332.html