zoukankan      html  css  js  c++  java
  • java8之Lambda

    Lambda 表达式基础语法:

    java8中引入了一个新的操作符 "->"  (lambda操作符)

    "->"    左侧Lambda表达式参数列表

    "->"    右侧Lambda体,Lambda表达式所需执行的功能

    语法格式一:无参,无返回值

        () -> { }

            Runnable runnable = () -> System.out.println("hello lambda test");
          runnable.run();

    相当于

     Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    System.out.println("hello test");
                }
            };
     runnable.run();
     

    语法格式二: 一参,无返回值  

    (e) -> { }  或  e -> { }     :一参时参数括号可写可不写

    Consumer<String> consumer = s -> System.out.println(s);
    consumer.accept("Hello test");

    语法格式二: 多参,有返回值

    (a,b,...) -> { }     

    :Lambda体中只有一条语句时,{}及 return 可写可不写

    :Lambda参数列表数据类型可以省略不写(写的话要所有参数全写),JVM编译器会根据上下文推断出数据类型

    Comparator<Integer> comparator = (x,y) -> Integer.compare(x,y);
    Comparator<Integer> comparator2 = (x,y) -> {
         System.out.println("比较x,y大小");
         return Integer.compare(x,y);
    };

    Lambda 表达式需要”函数式接口“的支持

    函数式接口:接口中只有一个抽象方法的接口,可以使用注解@FunctionalInterface修饰来检查是否为函数式接口。

  • 相关阅读:
    poj 2243 bfs 利用 结构体中的step成员保存步数 ,STL的队列
    poj 1915 双向 BFS 利用数组 a[x][y] = a[cp.x][cp.y] + 1; b[x][y] = b[cp.x][cp.y] + 1;保留步数
    poj 1915 BFS 利用 pre 计算步数------------------路径
    hdu 1242
    poj 2243
    rwkj 1502
    png-CRC32校验
    uva-331-枚举-交换的方案数
    uva-301-枚举-组合
    关于docker
  • 原文地址:https://www.cnblogs.com/mingforyou/p/14725528.html
Copyright © 2011-2022 走看看