Java 8 作为 Java 语言的一个重要版本,引入了许多新的特性和功能,极大地提高了开发效率。其中,Stream 和 Lambda 表达式是两个备受关注的创新功能。本文将详细介绍 Java 8 新特性,并通过实际案例解析如何使用这些功能。
一、Stream API
Stream API 是 Java 8 引入的一个全新概念,它允许以声明式方式处理数据集合。Stream API 可以应用于集合、数组等数据源,进行过滤、映射、排序等操作。
1.1 创建 Stream
Stream 可以通过以下方式创建:
- 集合的
stream()方法 - 数组的
stream()方法 Stream.of()方法
List<String> list = Arrays.asList("Java", "8", "新", "特性");
Stream<String> stream = list.stream();
1.2 Stream 操作
Stream API 提供了丰富的操作方法,包括:
- 中间操作:如
filter(),map(),sorted() - 终端操作:如
forEach(),collect()
stream.filter(s -> s.length() > 2)
.map(String::toUpperCase)
.forEach(System.out::println);
1.3 案例解析
以下是一个使用 Stream API 处理集合的案例:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
int sum = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(n -> n * n)
.sum();
System.out.println("Sum of squares of even numbers: " + sum);
二、Lambda 表达式
Lambda 表达式是 Java 8 引入的另一个重要特性,它允许以更简洁的方式编写代码,特别是在处理函数式编程场景时。
2.1 Lambda 表达式结构
Lambda 表达式的结构如下:
(参数列表) -> { 代码块 }
2.2 Lambda 表达式示例
以下是一个使用 Lambda 表达式实现线程的案例:
Runnable runnable = () -> {
System.out.println("Hello, Lambda!");
};
new Thread(runnable).start();
2.3 案例解析
以下是一个使用 Lambda 表达式处理集合的案例:
List<String> list = Arrays.asList("Java", "8", "新", "特性");
list.sort((s1, s2) -> s1.compareTo(s2));
list.forEach(System.out::println);
三、总结
Java 8 新特性为开发者带来了许多便利,Stream API 和 Lambda 表达式是其中的亮点。通过本文的介绍和案例解析,相信你已经对这两个特性有了更深入的了解。在实际开发中,熟练运用这些新特性,将大大提高你的开发效率。