Java8 特性详解(一) Lambda

lambda表达式入门理解:

1.调用lambda表达式的方法必须包含一个“函数式接口的实现”作为参数;
2.lambda表达式其实就是对函数式接口的简写,因为函数式接口只有一个抽象方法;
3.lambda表达式:
  ->左边是该匿名函数的参数
  ->右边是该匿名函数要执行的代码

测试代码
public class ConsumerTest {

    public static void main(String[] args) {

        List<String> al = Arrays.asList("a","b","c","d");

        //传统foreach方式
        for (String a: al) {
            System.out.println(a);
        }

        //匿名函数方式 (forEach(Consumer<? super T> action)方法,接收一个函数式接口Consumer<T> 类型参数)
        al.forEach(new Consumer<String>(){
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });

        //下面的lambda表达式是对上面的匿名函数的简写
        al.forEach(x -> {
            System.out.println(x);
        });

        //也可以先实例化Consumer
        Consumer<String> consumer = x -> {
            System.out.println(x);
        };
        al.forEach(consumer);

        //调用实例的accept方法
        for (String a: al) {
            consumer.accept(a);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_34125981/article/details/89499115