一、Lambda表达式
1.1 基本概念
Lambda表达式是Java 8中引入的一种简洁的函数式编程语法,它允许我们将函数作为参数传递给其他方法,或者将函数作为返回值返回。Lambda表达式可以使代码更加简洁、易读,同时也提高了编程的效率。
1.2 语法规则
Lambda表达式的基本语法如下:
(parameters) -> expression
或
(parameters) -> { statements; }
其中,parameters表示参数列表,可以有多个参数,用逗号分隔;expression表示一个表达式,用于计算结果;statements表示一段代码块,可以包含多条语句。
1.3 使用场景
Lambda表达式主要应用于以下场景:
- 实现接口中的单一方法(如Runnable、Comparator等);
- 替代匿名内部类;
- 简化集合操作(如遍历、过滤、映射等)。
二、Stream API
2.1 基本概念
Stream API是Java 8中引入的一种新的数据处理方式,它提供了一种高效且易于使用的处理数据的方法。Stream API可以对集合进行并行处理,提高程序的执行效率。
2.2 常用操作
Stream API提供了许多常用的操作方法,如:
- filter:过滤元素;
- map:映射元素;
- limit:限制元素个数;
- sorted:排序元素;
- collect:收集元素到集合。
三、Lambda表达式与Stream API结合实践
下面我们通过一个简单的例子来演示如何使用Lambda表达式和Stream API实现一个字符串列表的筛选和排序功能。
假设我们有一个字符串列表,需要筛选出长度大于等于5的字符串,并按照字符串长度进行降序排序。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class LambdaAndStreamDemo {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Cathy", "David", "Eva");
List<String> filteredNames = names.stream()
.filter(name -> name.length() >= 5)
.sorted((a, b) -> b.length() - a.length())
.collect(Collectors.toList());
System.out.println(filteredNames);
}
}
运行上述代码,输出结果为:
[Cathy, David, Alice]
通过这个例子,我们可以看到Lambda表达式和Stream API结合使用可以让我们更加简洁、高效地处理数据。在实际开发中,我们可以根据需求灵活运用这两个特性,提高代码的可读性和执行效率。