lambda表达式为从JDK8开始的新语法形式,只能简化函数式接口的匿名内部类方法
函数式接口:有且只有一个抽象方法的接口,接口上方可以加@Functionalinterface注解
基本格式为 () ->{
}
()内为方法形参
{}对应方法体
以以下代码为例,Comparator为匿名内部类
Arrays.sort(arr,new Comparator<Integer>(){
@Override
public int compare(Integer o1,Integer o2){
return o1-o2;
}
});
可省略:arr,new Comparator<Integer>(){
@Override public int compare
},再加上->
即删去后为
Arrays.sort(arr,(Integer o1,Integer o2)->{
return o1-o2;
}
);
其他lambda省略规则
1、参数类型可以省略
2、只有一个参数时,可不写()和参数类型
3、如果方法体只有一行,大括号,分号,return可以省略。大括号,分号,return要省略必须同时省略
即最终简化结果为
Arrays.sort(arr,(o1,o2)-> o1-o2);