我该怎么做阶相当于这个Java代码如何在scala中创建不同长度的2d int数组?
int[][] vals = new int[4][];
for (int i=0; i < vals.length; i++) {
vals[i] = new int[1 + 2*i];
}
的Array.ofDim方法有两个参数
做到这一点我该怎么做阶相当于这个Java代码如何在scala中创建不同长度的2d int数组?
int[][] vals = new int[4][];
for (int i=0; i < vals.length; i++) {
vals[i] = new int[1 + 2*i];
}
的Array.ofDim方法有两个参数
做到这一点就像这样:
Array.tabulate(4)(i => Array.ofDim[Int](1 + 2 * i))
然而,它会慢很多。如果此代码处于关键路径中,则应该执行一个while循环以使其与Java中的相似。
一种方法是:
Array.tabulate(4)(i => new Array[Int](1 + 2 * i))
Err ...差不多。 :-) – 2011-05-18 01:28:15
@Daniel为什么差不多?它产生的结果与你答案中的代码完全一样... – Moritz 2011-05-18 01:36:31
对不起,我没有看到“'new'”关键字,所以它看起来像它会创建一个1 + 2 *我'作为内容。对不起,你的确是一样的。 – 2011-05-18 15:29:40
这被称为“衣衫褴褛的阵列”。你真的想要一个数组,还是列表足够? – 2011-05-17 23:20:36
我需要一个实际的速度和内存利用率阵列 – Anne 2011-05-17 23:41:47