Java 8 Stream 处理数据方法汇总

Java 8 Stream 是在 JDK 8 中引入的一个新的 API,它提供了一种更为优雅和高效的处理集合类数据的方法。

Java 8 Stream 处理数据方法汇总

什么是 Java 8 Stream

Java 8 Stream 是在 JDK 8 中引入的一个新的 API,它提供了一种更为优雅和高效的处理集合类数据的方法。

Stream 提供了一种流式处理数据的方式,它可以实现类似于 SQL 的聚合操作,如过滤、映射、分组和归约等操作。与传统的集合框架相比,Stream 代码更加简洁,更容易理解和维护。

Java 8 Stream 的核心方法

1. filter

filter 方法用于过滤集合中符合条件的元素

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> evenNumbers = numbers.stream()
                                    .filter(i -> i % 2 == 0)
                                    .collect(Collectors.toList());
System.out.println(evenNumbers);

以上代码中,我们首先定义了一个数字列表,然后使用 Stream 的 filter 方法筛选出其中的偶数,并将它们收集到一个新的列表中。输出结果为 [2, 4, 6, 8, 10]。

2. map

Map 方法用于将集合中的每个元素映射到新的元素

List<String> words = Arrays.asList("hello", "world");
List<Integer> wordLengths = words.stream()
                                .map(String::length)
                                .collect(Collectors.toList());
System.out.println(wordLengths);

以上代码中,我们通过 Stream 的 map 方法将字符串列表中的每个字符串映射为其长度,并将这些长度收集到一个新的列表中。输出结果为 [5, 5]。

3. reduce

Reduce 方法用于将集合中的元素按照某种计算方式进行归约

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
                .reduce(0, (a, b) -> a + b);
System.out.println(sum);

以上代码中,我们通过 Stream 的 reduce 方法将数字列表中的每个数字累加起来,并输出结果为 15。

总结

以上仅是 Java 8 Stream 的一些基本方法,Stream API 还有很多高级用法,如 flatMap、peek、sorted、distinct、limit 等等,它们的操作都非常流畅易懂,极大地提高了代码的可读性和可维护性。因此,我们应该学会运用 Stream 来处理集合数据,以提高我们的工作效率和代码质量。

本文标题为:Java 8 Stream 处理数据方法汇总

基础教程推荐