【发布时间】:2013-10-27 19:02:24
【问题描述】:
这正常吗?
scala> val x = Iterator(List[String]("str"))
lol: Iterator[List[String]] = non-empty iterator
scala> x.size
res1: Int = 1
scala> x.size
res2: Int = 0
实际上我遇到了其他奇怪的错误.. 一个可能的错误?
【问题讨论】:
-
来自scala-lang.org/api/current/#scala.collection.Iterator "特别重要的是要注意,除非另有说明,在调用迭代器方法后,永远不要使用迭代器。 最重要的两个exceptions 也是唯一的抽象方法:next 和 hasNext。”
-
答案附录:如果您需要一个普通的集合对象,只需调用例如
toSeq或toSet在您的迭代器上。然后丢弃迭代器并处理集合。