在scala中,我试图将一维数组分配给2D数组的一行
var data: Array[Array[AnyRef]] = _
val line = "Year,Month,Day,City"
val temp = line.split(",").toArray.asInstanceOf[Array[AnyRef]]
当我尝试
时data(0)=temp
应用程序将暂停,无需进一步警告或错误消息。这种方法有什么问题?以及如何正确地做到这一点?谢谢
答案 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阵列的大小,您可以考虑可以动态增长的其他数据限制,例如:列表清单