欢迎访问宙启技术站
智能推送

Java Lambda表达式的定义与使用

发布时间:2023-06-25 15:29:46

Java Lambda表达式是Java 8中引入的一种函数式编程形式,可以简洁地定义一个可传递的代码块,需要时调用,实现与传统的匿名内部类相同的功能。本文将详细介绍Java Lambda表达式定义、示例与使用。

Java Lambda表达式的定义

Lambda表达式可以看作是一种比较简洁的匿名函数,它本质上是一个接口实例,因此必须符合函数式接口的规范。Lambda表达式的定义格式如下:

(parameters) -> expression 或 (parameters) ->{statements;}

其中,parameters是指参数列表,可以为空或包含一个或多个参数,多个参数之间用逗号隔开;expression是指可以用来返回值的单行语句;statements是指可以用来执行的多行语句块。

下面是一个简单的Lambda表达式例子:

(x, y) -> x + y

该表达式表示一个Lambda函数,该函数接收两个整数参数x和y,并将它们相加作为返回值。

Java Lambda表达式的使用

Lambda表达式常被用于简化集合操作,如过滤、映射以及聚合等。下面将介绍Lambda表达式在Java编程中的使用:

1.使用Lambda表达式来遍历列表

List<String> fruitList = Arrays.asList("apple", "banana", "orange", "lemon");

fruitList.forEach(f -> System.out.println(f));

该代码会在控制台打印出数组fruitList中的所有元素。

2.使用Lambda表达式进行过滤操作

List<String> fruitList = Arrays.asList("apple", "banana", "orange", "lemon");

List<String> result = fruitList.stream().filter(f -> f.startsWith("a")).collect(Collectors.toList());

该代码使用了stream()和filter()方法来从fruitList中过滤出以“a”开头的所有元素,然后存入List集合result。

3.使用Lambda表达式进行映射操作

List<Integer> numberList = Arrays.asList(1, 2, 3, 4, 5);

List<Integer> squaredList = numberList.stream().map(n -> n * n).collect(Collectors.toList());

该代码使用了map()方法来映射numberList中的所有元素,并将每个元素平方后保存在squaredList中。

4.使用Lambda表达式进行聚合操作

List<Integer> numberList = Arrays.asList(1, 2, 3, 4, 5);

int sum = numberList.stream().reduce(0, (a, b) -> a + b);

该代码使用了reduce()方法将numberList中所有元素求和,并将结果存入变量sum中。

总结

Java Lambda表达式是Java 8中引入的一种函数式编程形式,可以简洁地定义一个可传递的代码块,需要时调用,实现与传统的匿名内部类相同的功能。在Java编程中,Lambda表达式常被用于简化集合操作,如过滤、映射以及聚合等。通过Lambda表达式,我们可以更加简洁地实现一些常见的编程任务。