Java技术点教程:Java Stream API
Java Stream API 是 Java 8 中引入的一个新特性,它提供了一种声明式方式处理数据集合(如列表、集合、数组等),支持链式操作,使代码更加简洁、易读。本教程将详细讲解 Java Stream API 的基本用法和常见操作。
一、Java Stream API 基本用法
Java Stream API 通过 Stream
接口表示元素序列。你可以使用集合的 stream
方法或数组的 stream
方法来获取流。以下是一个简单的示例:
List<String> list = Arrays.asList("apple", "banana", "orange");
Stream<String> stream = list.stream();
二、Java Stream API 常见操作
1. 过滤操作
使用 filter
方法可以对流中的元素进行过滤。以下是一个示例:
List<String> filteredList = list.stream()
.filter(s -> s.startsWith("a"))
.collect(Collectors.toList());
System.out.println(filteredList); // 输出:[apple]
2. 映射操作
使用 map
方法可以对流中的元素进行映射。以下是一个示例:
List<String> mappedList = list.stream()
.map(s -> s.toUpperCase())
.collect(Collectors.toList());
System.out.println(mappedList); // 输出:[APPLE, BANANA, ORANGE]
3. 排序操作
使用 sorted
方法可以对流中的元素进行排序。以下是一个示例:
List<String> sortedList = list.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(sortedList); // 输出:[banana, apple, orange]
4. 聚合操作
使用 reduce
方法可以对流中的元素进行聚合操作。以下是一个示例:
Optional<String> result = list.stream()
.reduce((s1, s2) -> s1 + " " + s2)
.orElse("No elements found");
System.out.println(result); // 输出:apple banana orange
三、Java Stream API 的使用场景
Java Stream API 可以广泛应用于数据处理的场景,如数据过滤、映射、排序、聚合等。以下是一个示例,使用 Stream API 统计一个集合中元素出现的次数:
Map<String, Long> countMap = list.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println(countMap); // 输出:{apple=1, banana=1, orange=1}
本教程介绍了 Java Stream API 的基本用法和常见操作,并提供了示例代码。通过学习 Java Stream API,你可以更高效地处理数据集合,使代码更加简洁、易读。