5.4 二维数组
二维数组就是数组的每个元素都是一个数组,确定一个元素需要两个下标,就好比平面坐标系的x和y轴。
还有比二维更多的数组,例如三维和n维,这里不讨论。
这就是一个二维数组的定义:
int[][]arr=new int[6][7];
我们用一个表格来加深理解
a[0][0] | a[0][1] | a[0][2] | a[0][3] | a[0][4] | a[0][5] | a[0][6] |
---|---|---|---|---|---|---|
a[1][0] | a[1][1] | a[1][2] | a[1][3] | a[1][4] | a[1][5] | a[1][6] |
a[2][0] | a[2][1] | a[2][2] | a[2][3] | a[2][4] | a[2][5] | a[2][6] |
a[3][0] | a[3][1] | a[3][2] | a[3][3] | a[3][4] | a[3][5] | a[3][6] |
a[4][0] | a[4][1] | a[4][2] | a[4][3] | a[4][4] | a[4][5] | a[4][6] |
a[5][0] | a[5][1] | a[5][2] | a[5][3] | a[5][4] | a[5][5] | a[5][6] |
此外还可以不指定第二个维度,但是在赋值的时候就需要定义第二个维度:
int[][]arr=new int[8][];
arr[4]=new int[5];
arr[4][3]=8;
(1)只有定义了那一行,才能在给该行的元素赋值,例如上面的代码假如接下来访问arr[5][3] = 8;就会显示错误,因为arr[5]并未定义
(2)每行的维度可以不一样,虽然真的这样做比较少。