流和集合的区别
1、集合与流之间的差异就在于什么时候进行计算
集合是一个内存中的数据结构,它包含数据结构中目前所有的值——集合中的每个元素都得先算出来才能添加到集合中。(你可以往集合里加东西或者删东西,但是不管什么时候,集合中的每个元素都是放在内存里的,元素都得先算出来才能成为集合的一部分。)
相比之下,流则是在概念上固定的数据结构(你不能添加或删除元素),其元素则是按需计算的。
2、集合和流的另一个关键区别在于它们遍历数据的方式
使用Collection接口需要用户去做迭代(比如用for-each),这称为外部迭代。相反,Streams库使用内部迭代——它帮你把迭代做了,还把得到的流值存在了某个地方,你只要给出一个函数说要干什么就可以了。Steams库的内部迭代可以自动选择一种适合你硬件的数据表示和并行实现。
3、流只能遍历一次
和迭代器类似,流只能遍历一次。
本文探讨了集合与流的概念差异:集合包含所有预先计算好的元素,而流则在需要时才计算元素;此外,集合采用外部迭代,而流采用内部迭代,并且流仅能遍历一次。
2181

被折叠的 条评论
为什么被折叠?



