Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java scala中的多变量循环_Java_Scala - Fatal编程技术网

Java scala中的多变量循环

Java scala中的多变量循环,java,scala,Java,Scala,我想在循环中迭代两个变量并填充映射 for (int i = 0, j = 0; i < header.size(); i++, j++) { map.put(header.get(i), cols.get(j)); } for(inti=0,j=0;icols.size 如果headers.size==cols.size或者如果您不想要没有相等列的头,您可以使用list.zip(另一个列表) 我想建议 val map = (0 until header.size) map { n

我想在循环中迭代两个变量并填充映射

for (int i = 0, j = 0; i < header.size(); i++, j++)
{
  map.put(header.get(i), cols.get(j));
}
for(inti=0,j=0;i
我们如何在Scala中实现这一点?请问有人能帮忙吗?
感谢您的帮助。

Scala中,您可以使用
zip
来执行此操作,如:

header.zip(cols).toMap

一种方法是将
map
与每个条目的索引一起映射到标题上,获得相同索引的
col
,并创建映射

鉴于

scala> val headers = Seq("h1", "h2", "h3", "h4")
headers: Seq[String] = List(h1, h2, h3, h4)

scala> val cols = Seq("c1", "c2", "c3")
cols: Seq[String] = List(c1, c2, c3)
headers上的
map
headers.size>cols.size

如果
headers.size==cols.size
或者如果您不想要没有相等列的头,您可以使用
list.zip(另一个列表)

我想建议

val map = (0 until header.size) map { n => header.get(n) -> header.col(n) } toMap
作为一个相当幼稚的翻译


这假设
标题
只是一个带有几个
定义的任意对象,不是一个正确的集合。

当我在programmer中添加这行代码时,它不会重复多个记录。@user1734980,我想你可以为此粘贴一个可运行的代码。如果您的
标题
cols
不是Scala集合,可能需要将其转换为Scala集合。为什么这里需要两个变量?变量
i
j
总是有相同的值,不是吗?那么为什么不使用
i
而不是
j
?如果您的实际代码更复杂,请向我们展示一些更好的示例。
scala> headers.zip(cols)
res52: Seq[(String, String)] = List((h1,c1), (h2,c2), (h3,c3))
val map = (0 until header.size) map { n => header.get(n) -> header.col(n) } toMap