我該怎麼做階相當於這個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