Lambda表达式的说明
1.->代表一个lambda表达式
2.->的左边相当于接口中抽象方法的形参列表
3.->的右边相当于接口中重写的抽象方法的方法体
4.lambda的本质是作为接口的实例,依赖于函数式接口,只有一个抽象方法
lambda表达的语法使用情况
(1)无参,无返回值
Runnable r1 = ()-> System.out.println("w");
r1.run();
(2)有参,无返回值(数据类型可以省略,会自动进行类型推断)
Consumer<String> consumer = (s)-> System.out.println(s);
consumer.accept("努力达到新高度");
(3)当参数只有一个的时候,()可以省略
Consumer<String> consumer = s-> System.out.println(s);
consumer.accept("努力达到新高度");
(4)当lambda参数不止一个,并且有返回值,且执行语句有多条
Comparator<Integer> integerComparator = (o1, o2) -> {
System.out.println(o1);
System.out.println(o2);
return o1.compareTo(o2);
};
System.out.println(integerComparator.compare(12, 33));
(5)当只有一条return语句时,return可以省略
Comparator<Integer> integerComparator = (o1, o2) -> o1.compareTo(o2);
System.out.println(integerComparator.compare(12, 33));