Lambda Expression
今天,朋友发了一张截图,将80多行的代码优化为5行,看着超级清爽,而且也很清晰,而对于我来说,好像没用过这么多函数连续调用,因此写这篇博客增加一点自己的认知。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
Lambda Expression( λ表达式 / 匿名函数 )
目前java 12 都出来了,而我竟然连java 8 中的东西没使用完全,有点尴尬呀... 唉,都是不努力造成的结果呀,继续学吧,毕竟按java目前的更新速度,应该是学不动了,更尴尬呀,有木有!!!
Java 8 是继 Java 5 之后的最重要的发布版本,包含了很多特性,简化开发,编译函数式接口代替匿名类,使代码更具可读性。其中最终要的一点就是lambda expression。
lambda expression 是自 Java 添加 泛型(Generics) 和 注解(annotation) 以来最大的变化。
lambda可以看作为一个简洁可传递的匿名函数,属于“语法糖”系列,不属于特定的类,但是具备参数列表、函数主体、返回类型、甚至可以抛异常等,其次它是匿名的,没有具体的函数名称,可以像参数一样传递,简化代码的编写(参考lambda表达式)。
注:语法糖指的是方便开发,提升效率的的,对现有语法进行的封装,如 Java 中有自动拆装箱、泛型、变长参数、增强for循环、内部类、枚举、lambda式等。
其隐含了return关键字,具体格式定义为如下:
①、参数列表 -> 表达式; ②、参数列表 -> { 表达式集合 }
好了,以上介绍就先到这儿,接下来就是见证 lambda 真正强大的地方了,也就是如何使用呐?不然还说个毛线呀...
Lambda表达式应用
1、stream介绍
使用 lambda 表达式,首先要将其转换为流(Stream / 与文件流一点关系都没有),是一种声明式的数据处理方式,以直观方式来提供一种对 Java 集合运算和表达的高阶抽象。
这种处理方式需要将处理数据集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。
元素流在管道中经过 中间操作(intermediate operation)的处理,最后由 最终操作(terminal operation)得到前面处理的结果。(参考Java 8 Stream)

流介绍:
2、for循环
如下代码,lambda可以将 for循环遍历 简化为一行,更加简洁。
稍有拖延,还未完....
