Lambda表达式

Lambda 表达式:在 java8 语言中引入的一种新的语法元素和操作符。这个操作符为 ->,该操作符被称为 Lambda 操作符或箭头操作符。他将 Lambda 分为了两个部分。

  • 左侧:指定了 Lambda 表达式需要的参数列表。
  • 右侧:指定了 Lambda 体,是抽象方法的实现逻辑,即 Lambda 表达式要执行的功能。

语法格式:

  1. 无参,无返回值。

无参的话,表达式的左侧即为一个空的括号,右侧写在代码块中写要执行的语句即可:

// 使用lambda表达式前
Runnable r1 = new Runnable(){
    @Override
    public void run(){
        System.out.println("我是要成为海贼王的男人");
    };
};
r1.run();

// 使用lambda表达式后
Runnable r2 = ()->{
    System.out.println("我是要成为海贼王的男人");
}
r2.run();

  1. 有一个参数,但是没有返回值。

参数的数据类型可省略。

只有一个参数时,左侧的括号也可省略;

@Test
public void test2(){
    //未使用Lambda表达式
    Consumer<String> con = new Consumer<String>() {
        @Override
        public void accept(String s) {
            System.out.println(s);
        }
    };
    con.accept("雪玫瑰的花语是什么?");

    System.out.println("*******************");

    //使用Lambda表达式
    Consumer<String> con1 = (String s) -> {  // 这是,括号里的String可以省略,成为类型推断
        System.out.println(s);
    };

    //Lambda也可以写成如下形式:
    Consumer<String> con1 = s -> {
        System.out.println(s);
    };
    con1.accept("只能远远的看着你");


}
  1. 有两个以上的参数,多条执行语句,并且可以有返回值;
// 使用表达式前:
Comparator<Integer> com1 = new Comparator<integer>(){
    @Override 
    public int compare(Integer o1 , Integer o2 ){
        System.out.println(o1);
        System.out.println(o2);
        return o1.comparaTo(o2);
    }
};

// 使用表达式后
Comparator<Integer> com2 = (o1 ,o2 )-> {
        System.out.println(o1);
        System.out.println(o2);
        return o1.comparaTo(o2);
    }
} 
  1. 若 lambda 体只有一条用于 return 的语句时,可以将 return 和大括号都省略。
Comparator<Integer> com = (o1 , o2 ) -> o1.comparaTo(o2);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值