lambda表达式

JAVA学习网 2018-04-04 12:30:02

11. lambda表达式

  • lambda表达式本质上是一组匿名方法比如

    public int add(int x, int y) {
    return x + y;
    }
    //可以表示为
    (int x, int y) -> x + y;
    //或(虚拟机可以推断出类型)
    (x, y) -> x + y
    //或
    (x, y) -> { return x + y; }

  • obviously,lambda表达式由三部分组成:参数列表、箭头、一个表达式。
  • 当这个方法没有参数也没有返回值的时候,可以表示成

    //例如Runnable的run方法实现
    new Thread(()->{System.out.println("hello");}).start();
    //如果只有一个参数,虚拟机可以推断出类型
    c->{return c.length();}
  • 要接收lambda表达式结果,必须经过显示转换,例如

    //报错!!!
    Object obj = () -> {System.out.println("hi");};
    //编译通过
    Object o = (Runnable) () -> {System.out.println("hi"); };

  • lambda表达式的批处理操作,例如

    // 外部迭代
    for(Object o: list) {
    System.out.println(o);
    }
    //改为forEach函数实现内部迭代
    list.forEach(o -> {System.out.println(o);});
  • 使用Stream类进行流处理:第一步,创建Stream。第二步,转换Stream。第三步,聚合Stream。

    List

阅读(677) 评论(0)