一,lambda的基本语法
java8中引入了一个全新的操作符 "->" ,该操作符被称为箭头操作符或者Lambda操作符,箭头操作符把lambda表达式分为两部分:
左侧:Lambda表达式的参数列表
右侧:Lambda表达式所需要执行的功能或者成为Lambda体
语法格式一:无参数,无返回值
例如:() -> System.out.println(" hello world");
语法格式二:有一个参数并且无返回值
例如:(a) -> System.out.println(“111111111111111”);
语法格式三:如果只有一个参数小括号可以省略不写
例如 : a -> System.out.println("22222222222222");
语法格式四:有两个以上参数并且有返回值,Lambda体中还包括多条语句
例如: Comparator<Integer> com = (a,b) -> {
System.out.println("3333333333333333");
}
语法格式五:如果Lambda体重只有一条语句 return和{}可以省略不写
例如:Comparator<Integer> com = (a,b) -> Integer.compare(a,b);
语法格式六:
Lambda 表达式的参数列表的数据类型可以省略不写,因为JVM编译器通过上下文推断出,数据类型,即“类型推断”
例如:(Integer x, Integer y) -> Integer.compare(x, y);
二,Lambda表达式需要函数式接口支持
函数式接口:接口中只有一个抽象方法的接口,称为函数式接口。可以使用@FunctionalInterface注解修饰(可以检查是否是函数式接口)