天天看点

java8 两个list合并_Java 8:一文带你掌握 Lambda 表达式

本期教程将介绍 Java 8 新增的 Lambda 表达式,包括 Lambda 表达式的常见用法以及方法引用的用法,并对 Lambda 表达式的原理进行分析,最后对 Lambda 表达式的优缺点进行一个总结。

概述

Java 8 引入的 Lambda 表达式的主要作用就是简化部分匿名内部类的写法。

能够使用 Lambda 表达式的一个重要依据是必须有相应的函数接口。所谓函数接口,是指内部有且仅有一个抽象方法的接口。

Lambda 表达式的另一个依据是类型推断机制。在上下文信息足够的情况下,编译器可以推断出参数表的类型,而不需要显式指名。

常见用法

2.1 无参函数的简写

无参函数就是没有参数的函数,例如 Runnable 接口的 run() 方法,其定义如下:

@FunctionalInterfacepublic interface Runnable { public abstract void run();}
           

在 Java 7 及之前版本,我们一般可以这样使用:

new Thread(new Runnable() { @Override public void run() { System.out.println("Hello"); System.out.println("Jimmy"); }}).start();
           

从 Java 8 开始,无参函数的匿名内部类可以简写成如下方式:

() -> { 执行语句}
           

这样接口名和函数名就可以省掉了。那么,上