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 实体类

 

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

扫描二维码关注公众号,回复: 180686 查看本文章

  

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

  

  现在我们用Lambda表达式

  

  结果

  

4.总结

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

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

                               

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

  

   

猜你喜欢

转载自blog.csdn.net/sxlzs_/article/details/77771731