<JAVA8实战>学习笔记1-流与集合的区别

流和集合的区别

1、集合与流之间的差异就在于什么时候进行计算

集合是一个内存中的数据结构,它包含数据结构中目前所有的值——集合中的每个元素都得先算出来才能添加到集合中。(你可以往集合里加东西或者删东西,但是不管什么时候,集合中的每个元素都是放在内存里的,元素都得先算出来才能成为集合的一部分。)

相比之下,流则是在概念上固定的数据结构(你不能添加或删除元素),其元素则是按需计算的。

 &lt;JAVA8实战&gt;学习笔记1-流与集合的区别&lt;JAVA8实战&gt;学习笔记1-流与集合的区别

2、集合和流的另一个关键区别在于它们遍历数据的方式

使用Collection接口需要用户去做迭代(比如用for-each),这称为外部迭代。相反,Streams库使用内部迭代——它帮你把迭代做了,还把得到的流值存在了某个地方,你只要给出一个函数说要干什么就可以了。Steams库的内部迭代可以自动选择一种适合你硬件的数据表示和并行实现。

&lt;JAVA8实战&gt;学习笔记1-流与集合的区别

&lt;JAVA8实战&gt;学习笔记1-流与集合的区别

3、流只能遍历一次

  和迭代器类似,流只能遍历一次。