如何在Scala中将数组分配给一行二维数组

时间:2015-08-14 17:29:27

标签: arrays scala

在scala中,我试图将一维数组分配给2D数组的一行

var data: Array[Array[AnyRef]] = _
val line = "Year,Month,Day,City"
val temp = line.split(",").toArray.asInstanceOf[Array[AnyRef]]

当我尝试

data(0)=temp

应用程序将暂停,无需进一步警告或错误消息。这种方法有什么问题?以及如何正确地做到这一点?谢谢

1 个答案:

答案 0 :(得分:1)

您的数据阵列未初始化。试试这个。

object TwoDArray {

  var data: Array[Array[AnyRef]] = Array.ofDim[AnyRef](100,100)
  val line = "Year,Month,Day,City"
  val temp = line.split(",").toArray.asInstanceOf[Array[AnyRef]]

  def main(args: Array[String]) {
    data(0) = temp
    data.foreach(row => {
      val arrToStr = row.mkString(" ")
      if (!arrToStr.contains("null")) println(arrToStr)
    })
  }
}

更新:我将数组初始化为100x100,您可以根据需要将其缩小。此外,主要方法仅用于测试。如果您不知道2D阵列的大小,您可以考虑可以动态增长的其他数据限制,例如:列表清单