是否存在像流这样的数据结构,但是很弱?

时间:2011-03-27 18:06:37

标签: list scala stream

弱引用中的弱点。基本上,我需要一系列数字,其中一些数字可以在不再需要时分配。

3 个答案:

答案 0 :(得分:5)

scalaz.EphemeralStream就是你想要的。

答案 1 :(得分:0)

视图为您提供了一个惰性集合,其中每个值都是根据需要计算的。

答案 2 :(得分:0)

您可以做的一件事是创建Iterable而不是Stream。您的Iterable需要提供iterator方法,该方法返回使用hasNextnext方法的迭代器。

当您遍历Iterable时,将调用hasNextnext以根据需要生成元素,但它们不会存储在任何位置(例如Stream确实)。

简单示例:

class Numbers extends Iterable[Int] {
  def iterator = new Iterator[Int] {
    private var num = -1

    def hasNext = num < 99
    def next = { num += 1; num }
  }
}