zoukankan      html  css  js  c++  java
  • 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   自动选择参数      创建数组

          

        

        

  • 相关阅读:
    智能家居项目(3):编译工具makefile
    9、Cocos2dx 3.0游戏开发找小三之工厂方法模式与对象传值
    Redis于windows在安装
    Gray Code -- LeetCode
    hdu 1575 Tr A(矩阵高速电源输入)
    phpstorm快捷键
    Reverse Linked List II -- LeetCode
    程序猿的故事-注定奉献给节目
    poj2112 Optimal Milking --- 最大流量,二分法
    POJ 3356 AGTC(最长公共子)
  • 原文地址:https://www.cnblogs.com/helloworldmybokeyuan/p/11582102.html
Copyright © 2011-2022 走看看