返回
火力全开!解锁Java 8 Stream集合的神奇魔法
后端
2023-12-22 02:56:29
Java Stream 简介
Java Stream是一种抽象,使您能够以声明性方式处理集合。这意味着您可以专注于要实现的目标,而无需担心如何实现它。Stream提供了大量操作,可以用于处理集合中的元素。这些操作可以分为四类:筛选、归约、分组和聚合。
筛选集合
筛选操作用于从集合中选择满足特定条件的元素。这可以通过使用filter()
方法来实现。例如,以下代码从一个集合中选择所有大于10的元素:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
List<Integer> filteredNumbers = numbers.stream()
.filter(number -> number > 10)
.collect(Collectors.toList());
System.out.println(filteredNumbers);
输出:
[11, 12]
归约集合
归约操作用于将集合中的元素组合成一个单一的元素。这可以通过使用reduce()
方法来实现。例如,以下代码将一个集合中的所有元素求和:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
int sum = numbers.stream()
.reduce(0, (a, b) -> a + b);
System.out.println(sum);
输出:
55
分组集合
分组操作用于将集合中的元素划分为不同的组。这可以通过使用groupBy()
方法来实现。例如,以下代码将一个集合中的元素按其长度分组:
List<String> words = Arrays.asList("apple", "banana", "cherry", "dog", "elephant", "fish");
Map<Integer, List<String>> groupedWords = words.stream()
.collect(Collectors.groupingBy(String::length));
System.out.println(groupedWords);
输出:
{3=[dog, cat], 5=[apple, fish], 6=[banana], 8=[elephant, butterfly]}
聚合集合
聚合操作用于对集合中的元素进行统计。这可以通过使用summarizing()
方法来实现。例如,以下代码计算一个集合中元素的平均值、最大值、最小值和总和:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
IntSummaryStatistics stats = numbers.stream()
.collect(Collectors.summarizingInt(Integer::intValue));
System.out.println(stats);
输出:
IntSummaryStatistics{count=10, sum=55, min=1, max=10, average=5.5}
结论
Java Stream是一种强大的工具,可让您轻松处理集合。它提供了一系列操作,使您能够筛选、归约、分组和聚合集合。在本文中,我们探讨了这些操作,并通过示例代码展示了如何使用它们。