Lambda表达式

Lambda表达式

Lambda表达式是一个匿名函数,是在Java 8中出现的新特性,其允许把函数作为方法的参数传递。lambda表达式可以代替部分匿名内部类,使得代码更加简洁高效。

lambda表达式的基本格式:
(参数1,参数2......,参数n) -> 表达式;
(参数1,参数2......,参数n) -> {
    表达式1;
    表达式2;
    ......
    表达式n;
}
说明:
  • 一个Lambda表达式可以有0个参数或任意多个参数,并且参数的类型可以声明也可以不作声明而通过上下文来判断,例如“(int a)->return a;”与“int a;(a)->return a;”相同
  • 若只有一个参数,并且省去类型声明时,括号可以省去
  • Lambda表达式的主体可以是零条或多条语句,当主体只有一条语句时,{}可以省略
使用条件:
  • 使用Lambda表达式时必须有接口并且接口中仅有一个抽象方法
  • 使用Lambda表达式时必须有上下文推断,即Lambda表达式的参数必须与接口方法的参数类型对应
例子:

使用lambda表达式计算 a 2 a^2 a2,若不使用Lambda表达式,使用匿名内部类时代码如下:

interface Square{
    int calculate(int a);
}

public class Test {
    public static void main(String[] args) {
        calculate(2, new Square() {
            @Override
            public int calculate(int a) {
                return a*a;
            }
        });
    }
    public static void calculate(int a,Square square){
        System.out.println(square.calculate(a));
    }
}

使用lambda表达式时代码如下:

interface Square{
    int calculate(int a);
}

public class Test {
    public static void main(String[] args) {
        calculate(2,a->{return a*a;});
    }
    public static void calculate(int a,Square square){
        System.out.println(square.calculate(a));
    }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值