我试图在Scala中对HashMap
进行for循环,但是我还需要对迭代次数进行计数,例如各种索引。这就是我想要的功能:
val map = HashMap()
val i = 0;
for ((k, v) <- map) {
// do something
i += 1
}
但是我希望它看起来像这样,其中我在for循环语法中进行了更新。但是,这似乎是一个嵌套循环,而不是并行迭代器。
for ((k, v) <- map; i <- 0 until map.size) {
// do something
}
答案 0 :(得分:4)
zipWithIndex
方法专门用于此目的:
for {((k, v), i) <- map.zipWithIndex} yield {???}
或
map.zipWithIndex.collect { case ((k, v), i) => ??? }
在这种情况下,我个人将使用第二个版本,并且在遍历多个集合时仅使用for
语法。