Java 8作为Java语言的一个重要版本,引入了许多新特性,其中Lambda表达式和Stream API是最具代表性的。Lambda表达式使得Java代码更加简洁,而Stream API则让集合操作变得更加高效。本文将通过实战案例,带你轻松掌握这两个特性。
Lambda表达式
Lambda表达式是Java 8引入的一种新的语法结构,它允许你以更简洁的方式编写匿名函数。Lambda表达式通常用于实现函数式接口,即只有一个抽象方法的接口。
Lambda表达式的基本语法
(参数列表) -> { // 主体
// 方法体
}
例如,以下是一个使用Lambda表达式实现的Comparator接口的例子:
Comparator<Integer> comparator = (a, b) -> a - b;
实战案例:排序
假设我们有一个学生类,包含姓名和年龄属性,我们需要根据年龄对学生进行排序。使用Lambda表达式,我们可以这样实现:
List<Student> students = Arrays.asList(new Student("Alice", 20), new Student("Bob", 22), new Student("Charlie", 19));
students.sort((s1, s2) -> s1.getAge() - s2.getAge());
Stream API
Stream API是Java 8引入的一种新的抽象层,它允许你以声明式的方式处理数据集合。Stream API可以用于各种操作,如排序、过滤、映射等。
Stream API的基本操作
- 创建Stream:可以使用Collection的stream()方法或Stream的of()方法创建Stream。
- 中间操作:如filter、map、sorted等。
- 终端操作:如forEach、collect等。
实战案例:过滤和映射
假设我们有一个学生类,包含姓名和成绩属性,我们需要找出所有成绩超过90分的学生,并打印他们的姓名。
List<Student> students = Arrays.asList(new Student("Alice", 92), new Student("Bob", 85), new Student("Charlie", 95));
students.stream()
.filter(s -> s.getScore() > 90)
.forEach(s -> System.out.println(s.getName()));
总结
Lambda表达式和Stream API是Java 8的两个重要特性,它们使得Java代码更加简洁、高效。通过本文的实战案例,相信你已经能够轻松掌握这两个特性。在实际开发中,熟练运用Lambda表达式和Stream API,将使你的代码更加优雅。