Java匿名内部类的继承者、终结者————lambda表达式
一.什么是lambda表达式?
lambda表达式就是一个代码块,可以传入变量和放入相应的代码。
二.基本格式
(参数 ) - >{
代码
}
实例:
/** * 完成人生中第一个lambda表达式完成 */ Comparator<String> comp=(str1,str2)->{ if(str1.length()>str2.length()) { return 1; }else if(str1.length()==str2.length()){ return 0; }else { return -1; } };
如果没有参数 ( ) 也必须保留
如果你的参数类型可以被推断出来你可以忽略其类型,如果其参数可以被推断出来,可以省略小括号。
三.函数式接口
当一个接口只需要实现一个抽象方法时,我们可以提供一个lambda表达式,这一种接口就是函数式接口。
比如上面的例子
/** * 完成人生中第一个lambda表达式完成 */ Comparator<String> comp=(str1,str2)->{ if(str1.length()>str2.length()) { return 1; }else if(str1.length()==str2.length()){ return 0; }else { return -1; } };
Comparator接口只需要实现一个方法compare即可,那么我们就可以提供一个lambda表达式来实现。
还有这样的例子:
Integer[] arr = { 1, 2, 5, 4, 63, 59, 25, 45, 85, 12, 0, 122, }; Arrays.sort(arr, (o1, o2) -> { return o1 - o2; });