scala 2维数组

时间:2013-04-02 01:33:10

标签: scala multidimensional-array

这可能听起来很容易,但我无法做到。

如何在Scala中创建大小为100 x 60的二维数组? 假设我有一个名为Abcd的类,我想创建一个Abcd的二维数组。 我尝试使用以下代码但不起作用。

var myArray = new Array[Array[Abcd]](100,60)

它抱怨“构造函数数组的参数太多了”

3 个答案:

答案 0 :(得分:38)

目前推荐的方法是使用ofDim

var myArray = Array.ofDim[Abcd](100, 60)

答案 1 :(得分:24)

或者如果您希望您的数组以ABCD开头而不是空值

Array.fill[ABCD](100,6) { new ABCD }

或者ABCD是否按位置以某种常规方式变化

Array.tabulate[ABCD](100,6) { (i,j) => new ABCD(i,j) }

答案 2 :(得分:4)

我知道这个问题已得到解答,但我遇到的一个问题是@ alexwriteshere的解决方案和@ Chick的解决方案只有你想要一个矩阵才有用。

为了能够创建一个二维数组(如果被视为第一行数,然后是列数),请执行以下操作:

val array = Array.ofDim[Array[Char]](2)
array(0) = Array.ofDim[Char](10)
array(1) = Array.ofDim[Char](20)