【发布时间】:2020-07-20 02:24:42
【问题描述】:
Scala 中的以下集合类型有什么区别:List 和 LazyList 类型?
【问题讨论】:
Scala 中的以下集合类型有什么区别:List 和 LazyList 类型?
【问题讨论】:
LazyList 是 Scala 标准库 2.13.1 中引入的新类型。
scala.collection.immutable 包中。常见的List 类型之间的主要区别在于LazyList 的元素是延迟计算的,因此只计算那些被请求的元素。通过这种方式,惰性列表可以包含无限数量的元素。LazyList 和List)具有可比性。LazyList 由一个运算符构成,该运算符与 List 类型 (::)、#:: 所特有的运算符具有相似的外观。LazyList 无法在递归循环中生成 StackOverFlowError,而旧的 List 可以这样做。【讨论】:
问题
LazyList和List有什么区别?
可以改写为问题
Stream和List有什么区别?
因为Scala 2.13 发行说明
immutable.LazyList替换immutable.Stream。Stream有 不同的懒惰行为,现在已弃用。 (#7558, #7000)
what is the difference between Scala Stream vs Scala List vs Scala Sequence 提供了改写后问题的答案。
在特定情况下,measurements 最好解决性能判断。
【讨论】: