是jdk8开始后的一种新语法形式。作用:简化匿名内部类的代码写法
Lambda表达式的简化格式:
(匿名内部类被重写方法的形参列表) -> {
被重写方法的方法体代码。
}
注:-> 是语法形式,无实际含义
注意:
- Lambda表达式只能简化函数式接口的匿名内部类的写法形式
- 必须是接口的匿名内部类,接口中只能有一个抽象方法
Integer[] a={23,12,34,21};
Arrays.sort(a,(Integer o1,Integer o2)->{
return o2-o1;
});
System.out.println(Arrays.toString(a));
进一步简化:
- 参数类型可以省略不写。
- 如果只有一个参数,参数类型可以省略,同时()也可以省略。
- 如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写,同时要省略分号!
- 如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写。此时,如果这行代码是return语句,必须省略return不写,同时也必须省略";"不写
Integer[] a={23,12,34,21};
Arrays.sort(a,( o1, o2)-> o2-o1);//满足1、3、4
System.out.println(Arrays.toString(a));