如何在scala中使用迭代器方法迭代两次

时间:2015-01-29 21:13:01

标签: scala scala-2.11

// iteratorFunc is Iterable[SomeClass]
val iterator1 = iteratorFunc.iterator

iterator1 foreach {
    ...
}


val iterator2 = iteratorFunc.iterator

iterator2 foreach {
   ...
}

iterator1 foreach内的代码已成功完成。但是,iterator2给出了空迭代器。

请帮忙。

2 个答案:

答案 0 :(得分:7)

你应该duplicate

val (iterator1, iterator2) = iteratorFunc.iterator.duplicate

答案 1 :(得分:-1)

好吧,使用duplicate()非常昂贵,因为next()函数是同步的。您还需要缓存这两个迭代器之间的差异。