Java 8引入了Stream API,是一种新的API,用于处理集合数据。它使得对集合数据的处理变得更加简单和高效。Stream API可以用于执行各种操作,如过滤、映射、排序、归约等。
以下是Java 8 Stream API的一些示例用法:
- 过滤操作
可以使用filter()方法过滤Stream中的元素。例如,从一个字符串列表中找出以“a”字母开头的所有字符串:
List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> filteredList = list.stream()
.filter(str -> str.startsWith("a"))
.collect(Collectors.toList());
- 映射操作
可以使用map()方法将Stream中的元素进行转换。例如,将一个字符串列表中的所有字符串转换为大写形式:
List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> upperCaseList = list.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
- 排序操作
可以使用sorted()方法对Stream中的元素进行排序。例如,将一个数字列表按照从小到大的顺序排序:
List<Integer> list = Arrays.asList(5, 8, 2, 4, 1);
List<Integer> sortedList = list.stream()
.sorted()
.collect(Collectors.toList());
- 归约操作
可以使用reduce()方法将Stream中的元素归约为一个值。例如,计算一个数字列表中所有元素的和:
List<Integer> list = Arrays.asList(5, 8, 2, 4, 1);
int sum = list.stream()
.reduce(0, (a, b) -> a + b);
- 并行处理操作
可以使用parallelStream()方法将Stream中的所有元素并行处理。例如,计算一个数字列表中所有元素的和:
List<Integer> list = Arrays.asList(5, 8, 2, 4, 1);
int sum = list.parallelStream()
.reduce(0, (a, b) -> a + b);
- 统计操作
可以使用count()方法统计Stream中的元素个数。例如,统计一个字符串列表中所有元素的个数:
List<String> list = Arrays.asList("apple", "banana", "orange");
long count = list.stream()
.count();
- forEach操作
可以使用forEach()方法遍历Stream中的所有元素。例如,打印一个数字列表中所有元素的值:
List<Integer> list = Arrays.asList(5, 8, 2, 4, 1);
list.stream()
.forEach(System.out::println);
- 匹配操作
可以使用anyMatch()、allMatch()、noneMatch()方法匹配Stream中是否存在满足条件的元素。例如,判断一个数字列表中是否存在元素值为8的元素:
List<Integer> list = Arrays.asList(5, 8, 2, 4, 1);
boolean isExist = list.stream()
.anyMatch(num -> num == 8);
这些是Java 8 Stream API的一些示例用法。使用Stream API可以大大简化集合数据的处理,提高效率和性能。