• jdk1.8新特性(一)-函数式


    1.0 Lambda表达式

      Lambda表达式的标准格式为:格式说明:

      1. 小括号内的语法与传统方法参数列表一致:无参数则留空;多个参数则用逗号分隔。
      2. ->是新引入的语法格式,代表指向动作。
      3. 大括号内的语法与传统方法体要求基本一致。

      在Lambda标准格式的基础上,使用省略写法的规则为:

      1. 小括号内参数的类型可以省略;
      2. 如果小括号内有且仅有一个参,则小括号可以省略;
      3. 如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号。

    1.1 函数式的概念

      函数式接口在java中是指:有且仅有一个抽象方法的接口,适用于函数式编程的接口,在Java中体现就是Lambda,所以函数式接口就是

    可以适用于Lambda使用的接口。

      四个常用的接口

        supplier 生产型接口 get

        consumer 消费型接口 accept   andThen

        precidate判断型接口 test    and or negate

        function转换型接口 apply andThen

    2.1Stream流

      流的获取

        所有collection类型集合可以通过stream()方法获取流

        Stream接口的静态of方法,方法参数为可变参数,我们可以传递一个数组

      常见方法

        延迟方法:返回值仍然是流对象,并没有执行

        终结方法:返回值不是流对象,执行,如 count和forEach

        forEach:传入的是消费型接口

        filter:传入的是判断型接口

        map:传入的转换型接口

        注意:流只能使用一次,例如调用fifter生成下一个流后,本流关闭,不能第二次调用

        count:返回值long类型,统计个数(终结方法)

        limit:只取前几个

        skip:只取后几个

        concat:将两个流拼接为一个流(Stream静态方法)

    3.1方法引用

        如果lambda要表达的方案已存在可以通过::来引用

          使用对象名引用成员方法 System.out::print    输出

          通过类名引用静态方法Math::abs        简单改造

          通过super引用父类的成员方法super::sayHello  ()->super.sayHello()  父类方法

          通过this引用本类的成员方法this::buyHouse  ()->this.buyHouse()    子类方法

          类的构造器引用Person::new 自动选择参数     创建对象

          数组的构造器引用 int[]::new   自动选择参数      创建数组

          

        

        

  • 相关阅读:
    在纪念中国人民抗日战争暨世界反法西斯战争胜利70周年大会上的讲话
    ConcurrentHashMap 的实现原理
    聊聊并发(四)——深入分析ConcurrentHashMap
    Mybatis 动态 SQL
    Mybatis Mapper XML 文件
    MySQL的语句执行顺序
    Java 集合细节(二):asList 的缺陷
    java中 列表,集合,数组之间的转换
    将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
    把Java数组转换为List时的注意事项
  • 原文地址:https://www.cnblogs.com/helloworldmybokeyuan/p/11582102.html
Copyright © 2020-2023  润新知