【问题标题】:How to create an infinite collection from a Scala Set如何从 Scala Set 创建无限集合
【发布时间】:2015-10-09 16:50:57
【问题描述】:

有没有比通过Seq 更优雅的方法?

val origin = Set("a", "b")
val intermediate = origin.toSeq
val stream = Stream.from(0).map { index =>
    intermediate(index % intermediate.size)
}.toIterator

stream.next() // => "a"
stream.next() // => "b"
stream.next() // => "a"

我专门针对 Scala 2.9。

【问题讨论】:

标签: scala


【解决方案1】:

这个问题和this one非常相似。

最简单的方法是使用递归定义:

val stream: Stream[String] = origin.toStream #::: stream

#::: 是流连接运算符。相当于:

val stream: Stream[String] = origin.toStream.append(stream)

【讨论】:

    猜你喜欢
    • 2012-10-03
    • 2014-07-19
    • 2010-09-17
    • 2015-02-28
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    相关资源
    最近更新 更多