Java Stream 与kotlin迭代器的比较

Stream 严格上在长链式调用的时候有性能优势

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

Stream 的性能优势在很多场景下并没意义,因为很少有那么长的链,而且kotlin中也有代替的Sequence接口。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容