不明白到底懒序列到底哪里好了?
来源:6-4 集合变换与序列

zippen
2024-10-05
一般序列就是先一股脑把第一个filter遍历完得出结果,再将结果变成集合进行一次map;
打印得结果是 filter1,2,3,4;然后是map得2,4;最后打印forEach的5,9;
一共打印了8次;
懒汉序列,是按先执行filer,假如符合条件了再执行map,符合条件再执行forEach;
打印的结果是交替的:filter1,2;map2;forEach5;filter3,4;map4;forEach9;
也是打印了8次;
所以感觉老师您设置的案例根本就没有讲清楚啊;两种方式都是打印了8次,怎么懒汉序列的
性能就高一些?你用水龙头来举例,但是流出的水总量大小也没变了,懒汉序列还要频繁打开
关闭水龙头开关耗费精力呢,哪里好了?
写回答
1回答
-
bennyhuo
2024-10-05
嗯,这个问题是需要同学结合课程介绍的实际运行的逻辑来思考的。
性能方面,懒序列是一个元素一次通过后面的函数变换,普通的序列则是整个序列依次通过后面的变换。懒序列通常只需要遍历一次,而普通序列每一个函数变换都需要遍历一次。
还有一些情况,普通序列无法完成。
举一个极端的例子同学思考一下。
如果list元素个数是无穷大的。手机码字,代码凑合看哈
list.filter{ 过滤偶数 }.map{ 乘以2 }.takeUntil{ 小于100的数 }.forEach{ 打印 }
看下懒序列和普通序列的运行结果分别是怎样的呢?022024-10-08
相似问题