Java 8 是 Java 编程语言的一个重要版本,它引入了许多新特性,其中包括 Lambda 表达式和 Stream API,这两个特性极大地提升了 Java 开发的效率。以下是一些实用的案例,帮助你轻松入门 Lambda 表达式和 Stream API。
Lambda 表达式:简洁的函数式编程
Lambda 表达式是 Java 8 引入的一项新特性,它允许你以更简洁的方式编写代码,尤其是在实现接口只有一个方法时。下面是一个使用 Lambda 表达式对列表中的元素进行排序的例子。
示例:使用 Lambda 表达式排序
假设我们有一个字符串列表,我们想要根据字符串的长度对其进行排序。
import java.util.Arrays;
import java.util.List;
public class LambdaExample {
public static void main(String[] args) {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry", "Date");
// 使用 Lambda 表达式排序
list.sort((s1, s2) -> s1.length() - s2.length());
// 打印排序后的列表
list.forEach(System.out::println);
}
}
在这个例子中,我们使用 Lambda 表达式 (s1, s2) -> s1.length() - s2.length() 来实现排序逻辑,这样代码更加简洁易懂。
Stream API:处理集合的强大工具
Stream API 是 Java 8 引入的一个用于处理集合的新工具。它允许你以声明式的方式处理集合中的数据,例如进行过滤、映射、排序等操作。
示例:使用 Stream API 处理集合
假设我们有一个整数列表,我们想要找出其中的所有偶数,并将其乘以 2。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 使用 Stream API 过滤和映射
List<Integer> doubledEvens = list.stream()
.filter(n -> n % 2 == 0)
.map(n -> n * 2)
.collect(Collectors.toList());
// 打印结果
doubledEvens.forEach(System.out::println);
}
}
在这个例子中,我们首先通过 stream() 方法创建了一个 Stream 对象,然后使用 filter() 方法筛选出偶数,接着使用 map() 方法将偶数乘以 2,最后使用 collect() 方法将结果收集到一个新的列表中。
总结
通过上述案例,我们可以看到 Lambda 表达式和 Stream API 在 Java 8 中的应用。Lambda 表达式让我们的代码更加简洁,而 Stream API 则为处理集合数据提供了强大的工具。掌握这些特性,可以大大提升我们的开发效率。