所以,我想通过添加相同索引的值来“合并”两个Array [Int]。 应该是这样的:
newarray(0) = array1(0)+array2(0)...
f.e. Array(1,2,3)+Array(1,1,1,1,1) = Array(2,3,4,1,1)
我写道:
(array1, array2).zipped.map(_+_)
但是这显然会抛出一个ArrayIndexOutOfBoundsexception array1.length!= array2.length。
我也在寻找最聪明和最短解决方案。
答案 0 :(得分:2)
让你入门的建议可能是这样的:
val v1 = Seq(1, 2, 3, 4)
val v2 = Seq(1, 2, 3, 4, 5)
val v3 = v1.zip(v2).map(_+_)
println(s"V3: $v3")
这将产生以下输出,其中忽略v2的最后一个元素:
V3: List(2, 4, 6, 8)
但是,如果要默认为特定值,可以使用zipAll,如下所示:
val v1 = Seq(1, 2, 3, 4)
val v2 = Seq(1, 2, 3, 4, 5)
val v3 = v1.zipAll(v2, 0, 0).map(_+_)
println(s"V3: $v3")
这将为您提供以下输出,其中较短的数组填充值为零:
V3: List(2, 4, 6, 8, 5)
编辑:我看到你澄清了你的问题了。您似乎正在寻找第二个选项,使用zipAll。