2014年3月18日发布了JavaSE 8
不追求技术的新,追求技术的稳定
本质:Lambda 表达式是一个匿名函数
作用:简化代码,增强代码的表达力
Lambda 语法格式
// 格式1:无参无返回值
() -> System.out.println("Hello World!");
// 格式2:有参无返回值
(x) -> System.out.println(x);
// 格式3:有参有返回值
(x) -> x * x;
// 格式4:多参有返回值
(x, y) -> x + y;
// 格式5:函数体包含多条语句
(x, y) -> {
System.out.println("加法运算");
return x + y;
}
Lambda 表达式中的参数的数据类型可以省略,JVM 编译器能够根据上下文推算出,即“类型推断”
两个例子
/** 1. Comparator **/
TreeSet<Integer> ts1 = new TreeSet<>(new Comparator<Integer>(){
@Override
public int compare(Integer i1, Integer i2) {
return Integer.compare(i1, i2);
}
});
// lambda 表达式
TreeSet<Integer> ts2 = new TreeSet<>((i1, i2) -> {
return Integer.compare(i1, i2);
});
// 等同于(使用方法引用还可以再次简化)
TreeSet<Integer> ts3 = new TreeSet<>