首页 > java > Java 8新特性:lambda表达式

Java 8新特性:lambda表达式

作者:bin

lambda 表达式是 java 8th 给我们带来的几个重量级新特性之一,借用 lambda 表达式可以让我们的程序设计更加简洁。

lambda 表达式定义为一种 简洁、可传递的匿名函数,按如下格式:

  1. 1、参数列表 -> 表达式
  2. 2、参数列表 -> {表达式集合}

例如:

(String s) -> s.length();

lambda表达式隐藏了return,但是在表达式集合式和中要用到return

(int x, int y) -> {
    int z = x * y ;
    reutrn z + x;
}

基于函数式接口使用 lambda 表达式

下面是一个自定义函数式接口:

@FunctionalInterface
public interface TestLambda{
   boolean isLongName(String name)
}

jdk 自带的函数式接口:

其中最典型的三个接口是Predicate、Consumer,以及Function,其余接口几乎都是对这三个接口的定制化
Predicate可以用来过滤,Function类似map,Consumer用于消费

例如我们通常对一个数组对象进行遍历,排序,删除一些不需要对元素,以下有一个demo,sorted类似map,forEach就是消费:

package test;
import java.util.*;

public class Test {
    public static void main(String[] args) {
        System.out.print("start");
        List list = Arrays.asList(
                new Apple(1),
                new Apple(2),
                new Apple(7),
                new Apple(3),
                new Apple(9)
        );
        list.stream().sorted(Comparator.comparing(Apple::getWeight)).forEach(
                each -> {
                    System.out.print(each.weight);
                }
        );
    }
}

class Apple{
    public int weight;
    Apple(int w){
        this.weight = w;
    }
    public int getWeight(){
        return this.weight;
    }
}

您必须 [ 登录 ] 才能发表留言!