美文网首页
Lambda常见用法总结

Lambda常见用法总结

作者: 简洁书写 | 来源:发表于2019-07-18 17:31 被阅读0次

一、Lambda优化以下问题

1.解决原有匿名内部类语法冗余问题

2.解决作用域指向不明确问题

3.解决多余代码产生的“高度”问题

二、函数式接口

 1.Java API中有的接口只有一个方法,大多数回调接口都拥此个特征:比如Runnable接口和Comparator接口。因此只拥有一个方法的接口称为函数式接口;

 2.lambda为了使匿名接口不在产生冗余代码,使用“箭头”结构表示匿名接口(以下会有示例),同时JAVA SE 8中新增java.util.function包提供了常用的函数式接口:

      Predicate——接收T对象并返回boolean

      Consumer——接收T对象,不返回值

      Function——接收T对象,返回R对象

      Supplier——提供T对象(例如工厂),不接收值

      UnaryOperator——接收T对象,返回T对象

      BinaryOperator——接收两个T对象,返回T对象

三、使用和特性

1.语法:lambda 表达式的语法由 【(参数列表)箭头符号-> {函数体};】组成,例:(String s) -> { System.out.println(s); }

1

2.函数式接口的类型自动推导:

 lambda可自动推导目标类型

例:JavaSE7中的对象:

2 3

JavaSE8 lambda简化后:

4

        *同样的函数体,但表示了不同的类型;第一个lambda表达式【() -> "done"】是Callable的实例,而第二个lambda表    达式【() -> "done"】则是PrivilegedAction的实例。

3.当函数体有返回值时,可省略“return”关键字,省略”;”分号

    例1:接收一个参数(y),返回其2倍的值 

        ( y ) -> 2 * y

   例2:  一个接收String和Object并返回int的函数类型可以被表示为

      (String,Object) -> int

4.简化过程

    *当只有一个参数时,可省略类型

    *当只有一行代码语句时可省略分号和 { },多行语句时不可省略

    *当只有一个返回值时可省略return

            (String x)->{ System.out.print( x ); } 

                可简化为:(x)-> System.out.print( x )

 5. 词法作用域

        *在lambda函数体中,“this”会指向外部,且不会继承超类的变量。

 6. lambda 表达式对 值 封闭,对 变量 开放:

5

 

四、JDK1.8其它相关

1.lambda集合遍历:

      *List集合:

      list.forEach(c->System.out.println(c));

      *map集合

      map.forEach((key,value)->System.out.println("key:" + key + " value:" + value));

2.方法引用

  Java SE8

        提供的方法引用有很多种,需要在类名或对象与方法之间加入双冒号“::“表示,它们的语法如下:

        静态方法引用:ClassName::methodName

        实例上的实例方法引用:instanceReference::methodName

        超类上的实例方法引用:super::methodName

        类型上的实例方法引用:ClassName::methodName

        构造方法引用:Class::new

        数组构造方法引用:TypeName[]::new

6

相关文章

  • Lambda常见用法总结

    一、Lambda优化以下问题 1.解决原有匿名内部类语法冗余问题 2.解决作用域指向不明确问题 3.解决多余代码产...

  • lambda

    参考文献lambda的用法总结

  • lambda常见用法

    1. -> 替代了 类名、方法名 前提:函数接口 2. 在集合中的应用 3.stream() 以上是常用的一些场...

  • Java 8:一文掌握 Lambda 表达式

    本文将介绍 Java 8 新增的 Lambda 表达式,包括 Lambda 表达式的常见用法以及方法引用的用法,并...

  • Java 8:一文掌握 Lambda 表达式

    本文将介绍 Java 8 新增的 Lambda 表达式,包括 Lambda 表达式的常见用法以及方法引用的用法,并...

  • python技巧-lambda函数使用

    通常写法: lambda用法1: lambda用法2:

  • C++ lambda表达式

    lambda表达式 目录 一、开篇 二、lambda初识 三、lambda基本用法 四、lambda表达式捕获列表...

  • python高阶函数

    一、lambda表达式 用法: lambda 参数列表:函数体 三元运算符 二、map函数 用法:map(函数,可...

  • Lambda用法

    Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个...

  • Glide常见用法总结

    Glide作为开发常用的图片加载库,有许多实用而且强大的功能,那么,今天就来总结一番,这次把比较常见的都写出来,但...

网友评论

      本文标题:Lambda常见用法总结

      本文链接:https://www.haomeiwen.com/subject/qgfrlctx.html