Java 8 vs. Scala(二):Stream vs. Collection
【编者按】在之前文章中,我们介绍了 Java 8和Scala的Lambda表达式对比 。在本文,将进行 Hussachai Puripunpinyo Java 和 Scala 对比三部曲的第二部分,主要关注 Stream 和 Collection,本文由 OneAPM 工程师编译整理。 首先,为大家做一个简短的介绍,collection 是有限的数据集,而 stream 是数据的序列集,可以是有限的或无限的。 Streams API 是 Java 8 中新发布的 API,主要用于操作 collection 和 streaming 数据。Collections API 会改变数据集状态,而 Streams API 则不会。例如,当你调用Collections.sort(list)时,该方法会对传入的参数进行排序,而调用list.stream().sorted() 则会复制一份数据进行操作,保持原数据不变。 你可以在这里获得更多关于 API 数据流的信息 以下是笔者从 Java 8 文档中摘出的 collections 和 streams 之间的比较。强烈建议大家阅读 完整版 。 Streams 和 collections 有以下几点区别: 无存储。steam 不是存储数据元素的数据结构。而是通过计算操作管道从源头传输数据元素。 2.本质是函数。对 Stream 对象操作能得到一个结果