Lambda 表达式

1.概念:Java 8中引入的新工具-Lambda表达式,它可以让你很简洁地表示一个行为或传递代码。现在你可以把Lambda表达式看作匿名功能,它基本上就是没有声明名称的方法,但和匿名类一样,它也可以作为参数传递给一个方法。

2.语法规则

      Lambda表达式有三个部分,如图3-1所示。

               参数列表 —— 接收传递的参数。

               箭头 —— 箭头 -> 把参数列表与Lambda主体分隔开。

               主体 —— 比较两个Apple的重量。表达式就是Lambda的返回值了。

      例如:(1) () -> {}         (2) () -> "Lambda"          (3) () -> { return "Lambda ";}     (4)(int x, int y) -> { System.out.println("Lambda:"); }

3. 用法

  apple 实体类

 

  接口,里面有一个比较的方法

  

  以前,我们可以用匿名内部类,new 接口的实体重写方法来比较

  

  现在我们用Lambda表达式

  

  结果

  

4.总结

用了lambda后,代码更清晰了,那到底在哪里可以使用Lambda呢?你可以在函数式接口上使用Lambda表达式。在上面的代码中,你可以把 Lambda 表达式作为第三个参数     传给 comp方法,因为它这里需要Comparator,而这是一个函数式接口。如果这听起来太抽象,不要担心,现在我们就来详细解释这是什么意思,以及函数式接口是什么。

函数式接口: 我们这里的Comparator就是一个函数式接口,因为Comparator仅仅定义了一个抽象方法。一言以蔽之,函数式接口就是只定义一个抽象方法的接口。Java API中定义了一些函数式接口

                               

  所以上面我们的Comparator接口可以删掉,用java API 的Comparator接口 但是要指明泛型,lambda的参数列表的参数类型可以省略

  

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值