Java学习之Lambda表达式的使用详解
什么是Lambda表达式?
Lambda表达式是Java 8中引入的一个新特性。它可以将一个方法或一个匿名内部类作为参数作为输入传递,也可以在没有类的情况下声明和调用一个函数。Lambda表达式的语法如下:
(parameters) -> expression or statement block
这个语法包含了三个部分:参数列表、箭头和方法体。其中,参数列表可能为空,或包含一到多个参数;箭头将参数列表和方法体分开;方法体可以是表达式,也可以是语句块。
Lambda表达式的用途
Lambda表达式可以使得代码更为简洁和易于理解,并且对于函数式编程和并行编程的支持也更加有效。Lambda表达式主要用于函数式接口,即只有一个抽象方法的接口,可以直接传递Lambda表达式作为该抽象方法的实现。
如何使用Lambda表达式
使用Lambda表达式遍历集合
List<String> list = Arrays.asList("Java", "C", "Python", "Ruby");
list.forEach(language -> {
System.out.println(language);
});
上述代码中,我们定义了一个字符串列表,并使用forEach()
方法遍历每个字符串元素。Lambda表达式language -> { System.out.println(language); }
作为forEach()
方法的参数,用于在控制台输出每个元素的内容。注意,Lambda表达式中的参数类型都是自动推断的,因此我们不需要显式声明参数类型。
使用Lambda表达式实现函数式接口
@FunctionalInterface
interface Calculation {
int doOperation(int a, int b);
}
public class LambdaDemo {
public static void main(String[] args) {
Calculation addition = (a, b) -> a + b;
Calculation subtraction = (a, b) -> a - b;
System.out.println(addition.doOperation(3, 2));
System.out.println(subtraction.doOperation(3, 2));
}
}
上述代码中,我们定义了一个名为Calculation
的接口来执行数学运算,该接口仅包含一个doOperation()
方法作为抽象方法。接着,我们使用Lambda表达式定义两个函数式接口addition
和subtraction
分别执行加法和减法运算,并且分别调用doOperation()
方法以输出结果。
小结
Lambda表达式是Java 8中引入的一个新特性,它可以使得代码更为简洁和易于理解,并且对于函数式编程和并行编程的支持也更加有效。在Java中,Lambda表达式主要用于函数式接口,可以直接传递Lambda表达式作为该抽象方法的实现。我们可以通过Lambda表达式来遍历集合、实现函数式接口等方面来提高代码效率和可读性。