今天,朋友发了一张截图,将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

     Lambda Expression 随笔

    流介绍:

 

 

 

 

   2、for循环

    如下代码,lambda可以将 for循环遍历 简化为一行,更加简洁。

 

 

 

 

  稍有拖延,还未完....

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄