📜  带有集合的Java Lambda 表达式(1)

📅  最后修改于: 2023-12-03 15:39:27.108000             🧑  作者: Mango

带有集合的Java Lambda 表达式

Java Lambda 表达式是 Java 8 引入的一个新特性,可以将函数作为参数进行传递。这在处理集合时非常方便。本文将介绍带有集合的 Java Lambda 表达式。

集合

Java 中的集合是一组对象的容器,常用的集合有 List、Set、Map 等。集合在 Java 应用程序中扮演了重要的角色,可以方便地操作对象。

Lambda 表达式

Lambda 表达式是一种匿名函数,可以传递功能作为参数。它们允许您将函数功能作为一等公民传递。 Lambda 表达式可以减少代码的复杂性,使代码更加可读和可维护。

Lambda 表达式的语法如下:

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

其中,parameters 是 Lambda 表达式中传递的参数列表,-> 符号表示 Lambda 表达式的箭头操作符。下面是一些例子:

// 传递一个字符串,并输出
(String s) -> System.out.println(s)

// 接受两个整数,并返回它们的和
(int a, int b) -> a + b

// 接受一个数组,并返回该数组的长度
(int[] nums) -> nums.length
使用 Lambda 表达式处理集合

使用 Lambda 表达式处理集合可以大大减少代码量,使代码更加可读和可维护。下面是一些例子:

过滤

使用 Lambda 表达式可以很容易地过滤集合。假设我们有一个包含整数的 List,并要将其中所有大于 5 的整数过滤出来,可以使用以下代码:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
List<Integer> result = list.stream().filter(x -> x > 5).collect(Collectors.toList());
映射

映射是指将集合中的每个元素转换为另一个元素。例如,如果我们有一个包含字符串的 List,并要将每个字符串转换为其长度,可以使用以下代码:

List<String> list = Arrays.asList("apple", "banana", "orange");
List<Integer> result = list.stream().map(String::length).collect(Collectors.toList());
排序

使用 Lambda 表达式可以很容易地对集合进行排序。例如,如果我们有一个包含字符串的 List,并要按照字符串长度对其进行排序,可以使用以下代码:

List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> result = list.stream().sorted((x, y) -> Integer.compare(x.length(), y.length())).collect(Collectors.toList());
统计

使用 Lambda 表达式可以很容易地对集合进行统计。例如,如果我们有一个包含整数的 List,并要对其进行求和,可以使用以下代码:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int sum = list.stream().mapToInt(x -> x).sum();
结论

使用 Lambda 表达式可以很容易地处理集合。可以使用过滤、映射、排序和统计等功能,大大减少代码的复杂性,使代码更加可读和可维护。