Lamdba表达式

支持函数式编程:把函数本身作为参数传入。

优点:

简化了匿名内部类的编写

支持并行编程:多个处理器同时处理多个任务

缺点:

可读性差,代码越长越差
有条件限制,只有函数式接口才可以用

public class Test01 {
    public static void main(String[] args) {

        D d = new D() {
            @Override
            public int jisuan(int x, int y) {
                return x + y;
            }
        };
        int sum = d.jisuan(3, 4);
        System.out.println(sum);
    }


    interface D {
        public int jisuan(int x, int y);
    }
      /*匿名内部类,直接实现接口
     new D(){
            @Override
            public int jisuan(int x,int y) {
                return x+y;
            }
        };
      */
      /*Lamdba替换上方匿名内部类
      (int x,int y) -> x+y;//如果有返回值默认有return,没有返回值默认无return。
       */
}

Lamdba的其他几种形式:

//形参类型可以不用写

(x,y)-> x+y

//如果实现体有很很多语句,则不可以省略花括号,return也得显示
(x,y)->{int z=x+y;return z;};  

//如果形参只有一个,前面的小括号都可以省略
x->x;  

函数可以作为参数

      
test(1,2,(x,y)->{int z=x+y;return z;});  //会发现把函数作为参数了
public static void test(int a,int b, D ) {
     d.jisuan(a, b);
 }

函数式接口

接口中只有一个抽象方法
@FunctionalInterface  //函数式接口的注解
 interface {
     public int a(int x);
 }

Lambda 表达式是在jdk1.8引入的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值