如何使用循环迭代scala集合?

时间:2015-06-09 11:15:20

标签: scala

我知道我可以使用 x.foreach {...} 语法,但我想明确使用循环。我怎么能在Scala中做到这一点?我尝试使用以下代码,但它抱怨 hasNext next 不是 Iterable [T] 的成员。

while (it.hasNext)
  println("\t" + it.next.toString()) 

3 个答案:

答案 0 :(得分:2)

Iterable没有nexthasNextIterator也没有。

所以你的代码需要改成这样的东西:

val i = it.iterator
while (i.hasNext) println("\t" + i.next.toString())

但请注意,这根本不是惯用的Scala。

您可以使用println(it.mkString("\t","\t",""))

实现相同目标

答案 1 :(得分:2)

使用

val iter = it.iterator
while (iter.hasNext) {
  println("\t" + iter.next.toString())
}

答案 2 :(得分:0)

还要考虑map

it.iterator.map(i => "\t" + i.toString())

以及理解,

for (i <- it.iterator) yield "\t" + i.toString()