有没有像stream一样的数据结构,但是很弱?

发布于 2024-10-27 05:28:41 字数 45 浏览 4 评论 0原文

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

Weak as in weak references. Basically, I need a sequence of numbers where some of them can be unallocated when they aren't needed anymore.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冷情妓 2024-11-03 05:28:41

scalaz.EphemeralStream 就是你想要的。

scalaz.EphemeralStream is what you want.

禾厶谷欠 2024-11-03 05:28:41

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

Views provide you with a lazy collection, where each value is computed as it is needed.

清晰传感 2024-11-03 05:28:41

您可以做的一件事是创建一个 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 }
  }
}

One thing you could do is create an Iterable instead of a Stream. Your Iterable needs to provide an iterator method, which returns an iterator with hasNext and next methods.

When you loop over the Iterable, hasNext and next will be called to generate the elements as they are needed, but they are not stored anywhere (like a Stream does).

Simple example:

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

    def hasNext = num < 99
    def next = { num += 1; num }
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文