Stream 严格上在长链式调用的时候有性能优势
- Stream 可以并行化操作,kotlin迭代器只能命令式地、串行化操作。当使用串行方式去遍历时,每个 item 读完后再读下一个 item。而使用并行去遍历时,数据会被分成多个段,其中每一个都在不同的线程中处理,然后将结果一起输出。
- Stream的计算过程是在Collect的时候才发生的,也就是在collect之前都是声明他是lazy的,即便我map 10次,实际上我只在collect的时候迭代一次,更有甚者,类似filter之后getFirst这种,第一个filter命中就会直接停止了后面的filter。
网友评论