Scala for循环具有多个变量

时间:2014-03-08 06:41:57

标签: java scala for-loop

如何将此循环(使用Java)转换为Scala?

for(int i = 0, j = 0; i < 10; i++, j++) {
  //Other code
}

我的最终目标是同时循环浏览两个列表。 我想在迭代中的每个索引处同时获取这两个元素。

for(a <- list1, b <- list2) // doesn't work

for(a <- list1; b <- list2) // Gives me the cross product

2 个答案:

答案 0 :(得分:7)

使用.zip()制作元组列表并迭代它。

val a = Seq(1,2,3)
val b = Seq(4,5,6)
for ((i, j) <- a.zip(b)) {
  println(s"$i $j")
}
// It prints out:
// 1 4
// 2 5
// 3 6

答案 1 :(得分:0)

如果要遍历多个列表,只需在列表的元组上使用.zipped

val l1 = List(1, 2, 3)
val l2 = List(4, 5, 6)
val l3 = List("a", "b", "c")

for ((c1, c2, c3) <- (l1, l2, l3).zipped) {
    println(s"$c1, $c2, $c3")
}

//Prints
1, 4, a
2, 5, b
3, 6, c