本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)
b站视频
# Java Lambda 表达式
1.Lambda表达式使用前后的对比:
举例一:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| @Test public void test1(){ Runnable r1 = new Runnable() { @Override public void run() { System.out.println("我爱北京天安门"); } }; r1.run();
System.out.println("***********************");
Runnable r2 = () -> System.out.println("我爱北京故宫");
r2.run(); }
|
举例二:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| @Test public void test2(){
Comparator<Integer> com1 = new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return Integer.compare(o1,o2); } };
int compare1 = com1.compare(12,21); System.out.println(compare1);
System.out.println("***********************"); Comparator<Integer> com2 = (o1,o2) -> Integer.compare(o1,o2);
int compare2 = com2.compare(32,21); System.out.println(compare2);
System.out.println("***********************"); Comparator<Integer> com3 = Integer :: compare;
int compare3 = com3.compare(32,21); System.out.println(compare3); }
|
2.Lambda表达式的基本语法:
1.举例: (o1,o2) -> Integer.compare(o1,o2);
2.格式:
-> :lambda操作符 或 箭头操作符
->左边:lambda形参列表 (其实就是接口中的抽象方法的形参列表
->右边:lambda体 (其实就是重写的抽象方法的方法体
3.如何使用:分为六种情况


总结六种情况:
-> 左边:lambda形参列表的参数类型可以省略(类型推断);如果lambda形参列表只一个参数,其一对()也可以省略
-> 右边:lambda体应该使用一对{}包裹;如果lambda体只一条执行语句(可能是return语句,省略这一对{}和return关键字