生活中管理層次隨規模加深:班級→學校→區→市。多維數組同理,**二維數組 = 一維數組的數組**,三維 = 二維數組的數組,以此類推。邏輯上通常:第一維=行,第二維=列。
int[][] map; // 推薦:類型後集中括號
int map[][]; // C 風格
int[] map[]; // 混合風格
聲明後無內存分配,默認值 null。
// 二維
int[][] m = { {1,2,3}, {2,3,4} };
// 三維
int[][][] b = {
{ {1,2,3}, {1,2,3} },
{ {3,4,1}, {2,3,4} }
};
// 規則矩陣:第二維長度固定
byte[][] b = new byte[2][3];
int[][] m = new int[4][4];
int[][] m; m = new int[4][4];int[][] n = new int[2][]; // 僅初始化第一維
n[0] = new int[4]; // 第二維長度 4
n[1] = new int[3]; // 第二維長度 3
體現「數組的數組」本質:先建外層數組,再單獨構建每個內層數組。
// 訪問:雙下標
int val = m[0][0]; // 第一行第一列
// 長度:m.length = 第一維長度(行數)
// 總元素數需累加
int sum = 0;
for (int i = 0; i < m.length; i++)
sum += m[i].length; // 累加每行長度
// 規則矩陣
for (int i = 0; i < arr.length; i++)
for (int j = 0; j < arr[i].length; j++)
process(arr[i][j]);
// 不規則數組同樣適用(arr[i].length 自適應)
理解**「數組的數組」**,靈活運用 arr[i].length 自適應特性,是駕馭多維數組的關鍵。