ImmutableJS 中的 Iterable 和 Collection 有什么区别
What is the difference between a Iterable and a Collection in ImmutableJS
我已经阅读了文档,但我不清楚这两者之间的区别(特别是因为它们共享很多相同的运算符)
如果能看到一些解释差异的例子,那就太好了。一个比另一个多"common"吗?
首先,Collection
扩展了 Iterable
,所以公平地说,每个 Collection
实例也是 Iterable
。
Collection
可以看作是物化的有限数据集。在 Iterable
接口之上,它定义了方法和成员,例如 size
、last
、equals
和 'hashCode`。
Iterable
表示您可以遍历的内容。在 Collections
之上,这包括延迟生成的序列(可能是无限的!例如 immutable.Repeat
能够构造无限的序列。)。因此,size
、last
在这里没有多大意义,equals
和 hashCode
会非常棘手,可能不值得。
我已经阅读了文档,但我不清楚这两者之间的区别(特别是因为它们共享很多相同的运算符)
如果能看到一些解释差异的例子,那就太好了。一个比另一个多"common"吗?
首先,Collection
扩展了 Iterable
,所以公平地说,每个 Collection
实例也是 Iterable
。
Collection
可以看作是物化的有限数据集。在 Iterable
接口之上,它定义了方法和成员,例如 size
、last
、equals
和 'hashCode`。
Iterable
表示您可以遍历的内容。在 Collections
之上,这包括延迟生成的序列(可能是无限的!例如 immutable.Repeat
能够构造无限的序列。)。因此,size
、last
在这里没有多大意义,equals
和 hashCode
会非常棘手,可能不值得。