所谓二维数组,就是一个由行和列组成的一个表格而已,矩阵Matrix。我们在这个矩阵中访问元素的话,是根据元素的行角标和列角标所确定的。
那二维数组具体是在内存中如何存储的呢?
无论是二维数组,还是多维数组,它们本身就是一个一维数组
尤其对于二维数组而言,无非就是一个一维数组,只不过该一维数组中的每一个元素是另一个一维数组罢了!
用图来具体解释一下 :
如何创建一个二维数组呢?
1.int[][] matrix=new int[3][4];
创建一个3行4列的二维数组,元素默认都是02.int[][] matrix=new int[][]{
{1,2,3,4} ,
{5,6,7,8} ,
{9,10,11,12}
};
创建个指定元素的二维数组3.int[][] matrix={
{1,2,3,4} ,
{5,6,7,8} ,
{9,10,11,12}
};4.锯齿矩阵/二维数组
int[][] matrix={
{1,2,3,4} ,
{5,6,7} ,
{8,9},
{10}
};特别的,如果一个二维数组的行和列相等的话,也称之为是方阵
来看一个例子:
matrix.length 表示的就是最外层那个一维数组的长度 行数
matrix[i] 表示的是最外层那个一维数组当中角标i的那个元素 只不过这个元素也是一个一维数组
matrix[i].length 表示的是这个一维数组元素的长度(当前行的长度)
matrix[i][j] 表示的就是这个一维数组元素中角标j的那个元素
class Test01{
public static void main(String[] args){
int[][] matrix={
{1,2,3,4},
{5,6,7,8},
{8,7,6,5},
{4,3,2,1}
};
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix[i].length;j++){
System.out.print(matrix[i][j]+" ");
}
System.out.println();
}
}
}
输出结果: