如何在 Scala 中从 Stream 创建无限队列?

How do I create an infinite Queue from Stream in Scala?

我想要一个由 Scala 中的无限流支持的无限队列。这感觉很简单,但我就是找不到如何做到这一点。

Stream.from(0).toQueue // Except that there is no method "toQueue"

队列不能是无限的,因为它需要从两端访问:dequeue 操作从队列的前面获取一个元素,但是 enqueue 将一个元素放入 back 队列。对于无限序列,它没有意义。无限 stack 是有道理的(事实上,这就是单链表和流的本质),但 Stack 接口已被弃用,有利于直接使用实现。

你需要无限队列做什么?如果您只想按顺序使用流,则可以使用本机流方法或解构或仅使用通用收集方法,如 foreach.