如何使用Lambda表达式创建一个匿名函数?

Java Lambda表达式可以用来创建匿名函数(anonymous function),这也是它的主要用途之一。
例如,我们可以定义一个接口与抽象方法:

public interface MathOperation {
    int operate(int a, int b); 
}

然后使用Lambda表达式创建该接口的一个实现(匿名函数):

MathOperation add = (x, y) -> x + y; 

这里,(x, y) -> x + y就是一个Lambda表达式,它实现了MathOperation接口,所以可以赋值给MathOperation类型的变量。
这相当于创建了一个匿名的加法函数。我们可以调用它进行计算:

int result = add.operate(1, 2); // result = 3

再例如,创建一个比较器Comparator的匿名实现:

Comparator<Integer> comparator = (x, y) -> {
    if (x < y) return -1;
    if (x > y) return 1;
    return 0;  
};

然后可以将其用于集合排序:

List<Integer> list = Arrays.asList(3, 1, 4, 2);  
list.sort(comparator);
再例如,创建按钮点击事件的监听器实现:
java
button.setOnAction(event -> {
    System.out.println("Button clicked!"); 
}); 

这里event -> {…}就是一个监听器实现的Lambda表达式,相当于创建了一个匿名监听器函数。