聚合操作是什么?聚合操作简介与核心作用
时间:2026-08-18 | 作者:电竞小硕 | 阅读:0JDK 8 聚合操作的基本用法
在开发中,多数情况下都会涉及对集合、数组中元素的操作。
在JDK 8之前,通常需要通过普通循环遍历每一个元素,并配合if条件语句进行查找、过滤、修改等操作。这种方式虽然可行,但是代码量较大,并且执行效率较低。
为此,JDK 8中新增了一个Stream接口。
该接口可以将集合、数组的中的元素转换为Stream流的形式,并结合Lambda表达式的优势,进一步简化集合、数组中元素的查找、过滤、转换等操作。这一新功能就是JDK 8中的聚合操作。
聚合操作的3个步骤
在程序中,使用聚合操作没有绝对的语法规范。
根据实际操作流程,主要可以分为以下3个步骤:
(1)将原始集合或者数组对象转换为Stream流对象;
(2)对Stream流对象中的元素进行一系列的过滤、查找等中间操作(Intermediate Operations),然后仍然返回一个Stream流对象;
(3)对Stream流进行遍历、统计、收集等终结操作(Terminal Operation),获取想要的结果。
接下来,就根据上面聚合操作的3个步骤,通过一个案例来演示聚合操作的基本用法,如文件1所示。
文件1 Example31.ja va
1 import ja va.util.*;
2 import ja va.util.stream.Stream;
3 public class Example31 {
4 public static void main(String[] args) {
5 // 创建一个List集合对象
6 List list = new ArrayList<>();
7 list.add("张三");
8 list.add("李四");
9 list.add("张小明");
10 list.add("张阳");
11 // 1、创建一个Stream流对象
12 Stream stream = list.stream();
13 // 2、对Stream流中的元素分别进行过滤、截取操作
14 Stream stream2 = stream.filter(i -> i.startsWith("张"));
15 Stream stream3 = stream2.limit(2);
16 // 3、对Stream流中的元素进行终结操作,进行遍历输出
17 stream3.forEach(j -> System.out.println(j));
18 System.out.println("=======");
19 // 通过链式表达式的形式完成聚合操作
20 list.stream().filter(i -> i.startsWith("张"))
21 .limit(2)
22 .forEach(j -> System.out.println(j));
23 }
24 }
运行结果如图1所示。
图1 运行结果
案例说明
在文件1里,先定义了一个List集合。
随后按照聚合操作的3个步骤,对这个集合对象完成了聚合处理。
具体做法是:基于Stream流对集合中的元素进行过滤(filter)、截取(limit),最后再遍历输出。
第12~17行代码把整个聚合过程拆开来逐步展示。
这种写法每一步都比较直观。
第20~22行代码则换了一种写法,直接通过链式表达式来完成同样的聚合操作。
所谓链式表达式,就是在调用有返回值的方法时,不单独接收返回值,而是顺势继续调用下一个方法。
这样写语法更紧凑,执行过程也更连贯。通常也把这种链式调用称为操作管道流。
关于中间操作和终结操作
在 JDK 8 里使用聚合操作时,基本绕不开两个词:Intermediate Operations(中间操作)和 Terminal Operation(终结操作)。
不过,Ja va 官方其实并没有把这两个概念展开讲得特别细。
它更多是出于区分和管理聚合操作步骤中各类方法的需要,按照返回类型做了一次清晰划分。
某个方法执行之后,如果返回的依然是 Stream 流对象,那就被归到中间操作,比如过滤、截取、排序这类方法;
而方法执行完之后,如果返回值已经不再是 Stream 流对象,那么这类方法就属于终结操作,像遍历、统计、收集等,都在这个范围内。
需要注意的问题
需要注意的是,在进行聚合操作时,只是改变了Stream流对象中的数据,并不会改变原始集合或数组中的源数据。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 迅捷路由器怎么调信号最强,设置时要注意什么?
- 时间:2026-08-27
-
- vivo浏览器怎么卸不掉?原因和解决方法在这里
- 时间:2026-08-27
-
- OPPO R11s黑屏了,怎么强制恢复出厂设置?
- 时间:2026-08-27
-
- 飞利浦显示器包装盒有生产日期和保修期吗?怎么看?
- 时间:2026-08-27
-
- 联想新平板开机必须联网吗?怎么做?
- 时间:2026-08-27
-
- 平板横竖屏切换设置与问题解决
- 时间:2026-08-27
-
- 移动电源容量怎么测?要准备哪些工具?
- 时间:2026-08-27
-
- 荣耀90 Pro防水吗?防水级别多少?怎么用才安全
- 时间:2026-08-27
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
