Java8 Lambda表达式系统梳理及其常规应用 相信你看了更清晰

前言

Lambda表达式让java8的代码更加简洁,特别是处理一些复杂的集合运算的时候,这些都得益于java8的新特性–Lambda表达式,很多小伙伴,都会使用,但是有些时候还是一知半解,本文期望于帮助大家答疑解惑.

Lambda表达式介绍

简单来说,Lambda表达式提供了一种“将函数作为参数传递进方法中”的方式。这里你可以理解为,lambda表达式将一段代码(方法)像数据一样传递,可传递的代码(方法)。
还有,是Java开发更加简洁紧凑。

Lambda表达式接口要求:只能有一个抽象方法

Lambda表达式可以使接口的实现更加的简洁,但并不是所有的接口都可以用lambda表达式实现,这种接口只能定义一个需要实现的抽象方法。
Java8中 我们知道,系统内置的函数式接口都有@FunctionalInterface注解,打开注解的定义其实有一条:Conceptually, a functional interface has exactly one abstract method. 大家有兴趣可以看一下。
在这里插入图片描述

Lambda表达式基础语法

谈完接口我们了解一下基础语法,Lambda表达式我这里称之为三要素:
1. 匿名函数 :注意这点,函数名字并不主要,你在使用过程中,根本看不到它
2. 参数
3. 方法体

 大家常见符号:
     ():用来描述参数列表
      {} :用来描述方法体
      -> :运算符 ,可以读做 goes to 

Lambda表达式语法精简

这里我们以一个最简单的java8内置的函数式接口举例:
Predicate, 参数类型 T ,返回值 boolean在这里插入图片描述
BiFunction<T, U, R> 参数T,U 返回值R在这里插入图片描述
1. 可选的 参数类型
参数类型可不声明,因为在函数式接口的定义中已经定义了参数的数量和类型,所以,lambda表达式中,可以省略参数的类型
这里注意的是,要省略,必须全部省略,部分参数类型省略会报错的。
如下图:
在这里插入图片描述

2. 参数圆括号
如果参数列表中,参数的数量只有一个,则圆括号可以省略,其他时候不行。
在这里插入图片描述
3. 方法大括号:
如果方法主体只有一条语句,就不需要使用大括号,其他情况不行。
这个就不做演示了,大家应该都清楚。

4. 返回关键字 return
如果方法体唯一的一条语句是一个返回语句,则省略大括号的同时,必须省略return。
在这里插入图片描述

有了上述关于lambda表达式的基础语法 和 精简的规则,相信你在使用过程中会清晰很多。

方法引用

这里分两个介绍: 方法引用 和 构造方法引用
1.方法引用:
可以快速将一个lambda表达式的实现指向一个已经实现的方法。
语法规则:方法的隶属者::方法名
这里解释下方法隶属者,比如静态方法,隶属者是class,实例方法,隶属者 类实例。
注意:1.参数的数量和类型,必须和函数式接口中定义的方法一致
2.返回值得类型一定要和函数式接口中定义的方法一致
如图:
在这里插入图片描述
2.构造方法引用
其实与上面类似,只是调用的是构造方方法
在这里插入图片描述

总结

Lambda的知识就讲到这里了,想要熟练掌握,还是建议多多练习,毕竟coding是技能,需要刻意练习,才能融会贯通,后续更新一些系统常用的stream流式计算的例子,方便大家查询和使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值