创建一个包含每个索引的数组的数组

时间:2018-10-03 04:17:49

标签: scala

我想将Arrays一起添加到Arrays Array中。我也希望对每个数组进行索引。

输入:

a = Array("a", "b", "c")
b = Array("d", "e", "f")
c = Array("g", "h", "k")

我想要这样的输出:

a+b+c=> Array(("1",Array("a", "b", "c")),
              ("2",Array("d", "e", "f")),
              ("3",Array("g", "h", "k")))

2 个答案:

答案 0 :(得分:1)

假设您有一个输入数组列表

val a = Array("a", "b", "c")
val b = Array("d", "e", "f")
val c = Array("g", "h", "k")
List(a,b,c)

您可以通过应用以下简单函数来获得所需的解决方案

List(a,b,c).zipWithIndex.map(x => (x._2.toString,x._1))

这将为您获取输出

res0: List[(String, Array[String])] = List((0,Array(a, b, c)), (1,Array(d, e, f)), (2,Array(g, h, k)))

答案 1 :(得分:1)

a = Array("a", "b", "c")
b = Array("d", "e", "f")
c = Array("g", "h", "k")

def outArr(a:Array[String],b:Array[String],c:Array[String]) =
 Array(a,b,c).zipWithIndex.map{
  case (Array(a,b,c),x)=>"{\""+(x+1)+"\", array[\""+a+"\", \""+b+"\", \""+c+"\"]}" }

在Scala REPL中:

scala> outArr(a,b,c)
res8: Array[String] = Array({"1", array["a", "b", "c"]}, {"2", array["d", "e", "f"]}, {"3", array["g", "h", "k"]})