java二维数组本质是“数组的数组”,需区分声明(如int[][] matrix)、创建(new int3或分步new int[3][])和初始化(大括号直接赋值),三者缺一不可,且支持规则与不规则结构。

Java 中声明和创建二维数组,本质是“数组的数组”,即每个元素本身是一个一维数组。关键在于区分声明、内存分配(创建)和初始化三个步骤,缺一不可。
声明二维数组变量
声明只是告诉编译器变量类型和名称,不分配内存。语法有两种等效写法:
- 推荐写法(更清晰体现二维结构): int[][] matrix;
- 等价写法(C 风格,较少用):int[] matrix[];
注意:此时 matrix 是 null,还不能访问任何元素。
创建二维数组(分配内存)
使用 new 关键字为外层数组和内层数组分配空间。常见两种方式:
-
规则二维数组(矩形): 所有行长度相同。
int[][] matrix = new int[3][4]; —— 创建 3 行 × 4 列的整型数组,所有元素默认为 0。 -
不规则二维数组(锯齿形): 每行长度可不同。
int[][] jagged = new int[3][]; —— 先创建含 3 个元素的外层数组(每个元素为null)
然后分别初始化每行:
jagged[0] = new int[2];
jagged[1] = new int[5];
jagged[2] = new int[1];
声明、创建与初始化一步完成
使用大括号直接初始化,编译器自动推断维度和大小:
-
规则初始化:
int[][] nums = { {1, 2}, {3, 4}, {5, 6} }; → 3 行 2 列 -
不规则初始化:
int[][] data = { {1}, {2, 3, 4}, {5, 6} }; → 第 0 行 1 个元素,第 1 行 3 个,第 2 行 2 个
注意:这种写法必须在声明时完成,不能用于已声明的变量赋值(除非用匿名数组)。
访问与遍历二维数组
通过两个下标访问:array[row][col]。常用遍历方式:
-
传统 for 循环(明确行列):
for (int i = 0; i for (int j = 0; j System.out.print(matrix[i][j] + " ");
}
System.out.println();
} -
增强 for 循环(简洁):
for (int[] row : matrix) {
for (int val : row) {
System.out.print(val + " ");
}
System.out.println();
}
注意:matrix.length 是行数,matrix[i].length 是第 i 行的列数(对不规则数组尤其重要)。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











