函数式编程(Functional Programming)是把函数作为基本运算单元,函数可以作为变量,可以接收函数,还可以返回函数。历史上研究函数式编程的理论是Lambda演算,所以我们经常把支持函数式编程的编码风格称为Lambda表达式。 单方法接口 - Comparator - Runnable - Callable 以`Comparator`为例,我们想要调用`Arrays.sort()`时,可以传入一个`Comparator`实例,以匿名类方式编写如下 ```java String[] array = ... Arrays.sort(array, new Comparator() { public int compare(String s1, String s2) { return s1.compareTo(s2); } }); ``` 上述写法非常繁琐。从Java 8开始,我们可以用Lambda表达式替换单方法接口。改写上述代码如下 ```java public class Main { public static void main(String[] args) { String[] array = new String[] { "Apple", "Orange", "Banana", "Lemon" }; Arrays.sort(array, (s1, s2) -> { return s1.compareTo(s2); }); System.out.println(String.join(", ", array)); } } ```