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 处理数据方法汇总 - Python技术站