是否有一种简单的方法可以从for循环创建一个列表,在循环的每次迭代中迭代迭代器?
例如,假设我有一个迭代器,每次调用它时会返回一个随机的双精度:
val randDoubleIterator = new Iterator[Double] {
override def hasNext: Boolean = true
override def next(): Double = {
Random.nextDouble
}
}
假设我要创建一个包含10个随机双打的列表。我可以循环遍历迭代器以获得10个随机双打,并将其添加到我的列表(myList)中:
// The following is pseudocode
val myList = new List
for (i <- 0 until 10) {
myList.add(randDoubleIterator.next())
}
有没有更简单,更简洁的方法呢?
答案 0 :(得分:5)
这个怎么样:
List.fill(10)(Random.nextDouble())
答案 1 :(得分:3)
我相信这既简单又简洁。
val randDoubleIterator = Iterator.continually(util.Random.nextDouble)
val myList = randDoubleIterator.take(10).toList
这假设您希望稍后在代码中保留randDoubleIterator
用于其他目的。