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

时间:2015-01-02 11:32:31

标签: scala scala-collections

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

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

1 个答案:

答案 0 :(得分:3)

队列不能无限,因为它需要从两端进行访问:dequeue操作从队列的前面获取一个元素,但enqueue将一个元素放入返回队列。对于无限序列,它没有意义。无限的堆栈是有意义的(事实上,这是单链接列表和流本质上是什么),但不推荐使用Stack接口,而是直接使用实现。

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