如何加入两个数组是scala

时间:2015-02-13 03:39:23

标签: scala functional-programming

假设我有两个数组

val x =Array("one","two","three")
val y =Array("1","2","3")

什么是获得新阵列最优雅的方式 [" one1"" two2"" three3"]

3 个答案:

答案 0 :(得分:13)

使用zipmap应该这样做:

(x zip y) map { case (a, b) => a + b }

答案 1 :(得分:3)

与@ m-z类似,有了这样的理解,

for ( (a,b) <- x zip y ) yield a + b

这可以封装成隐含的,例如

implicit class StrArrayOps(val x: Array[String]) extends AnyVal { 
  def join(y: Array[String]) = 
    for ( (a,b) <- x zip y ) yield a + b 
}

并像这样使用它,

x join y
Array(one1, two2, three3)

答案 2 :(得分:0)

替代zip

(0 until math.min(x.length, y.length))
          .map(i => x(i) + y(i))
          .toArray