Java 採用「陣列的陣列」模型:
int[][] myInt = new int[5][10];
每行長度可不同(鋸齒陣列),遍歷使用 length 屬性:
for (int i = 0; i < myInt.length; i++) {
for (int j = 0; j < myInt[i].length; j++) {
myInt[i][j] = i * j;
}
}
C# 分兩種:
int[,] myInt = new int[5,10]; 真正的多維陣列,記憶體連續,使用 GetLowerBound/GetUpperBound 獲取邊界。int[][] myInt 與 Java 類似,每行獨立分配。for (int i = myInt.GetLowerBound(0); i <= myInt.GetUpperBound(0); i++) {
for (int j = myInt.GetLowerBound(1); j <= myInt.GetUpperBound(1); j++) {
myInt[i,j] = i * j;
}
}
| 特性 | Java | C# 矩形陣列 | C# 鋸齒陣列 |
|---|---|---|---|
| 記憶體佈局 | 不連續(陣列引用) | 連續 | 不連續 |
| 行長度 | 可變 | 固定 | 可變 |
| 邊界檢查 | length 屬性 | GetLowerBound/GetUpperBound | Length 屬性 |
| 語法 | [][] | [,] | [][] |