二维数组
0.数组的概念 特点
同上一节内容
1.数组的定义/声明
里面存储的类型[] 数组名字;
int[][] array;
2.数组的初始化
静态初始化—有长度 有元素
int[][] array = {{1,2},{3,4,5},{6,7}};
动态初始化—有长度 没有元素
int[][] array = new int[3][2];
//错误定义一
int[][] array = new int[3][];
array[0][0] = 10;
//运行时错误:NullPointerException
//错误定义二
int[][] array = new int[][2];
//Cannot specify an array dimension after an empty dimension
--------------------------------------------------------
//正确定义
int[][] array = new int[3][];
array[0] = new int[2];
3.数组元的访问:通过元素在数组中的位置—index索引
System.out.println(array[0]);
System.out.println(array[0][1]);
/输出
[I@7852e922 //{1,2}的首地址
2
array[i][j] i控制大数组中小数组的位置,j控制小数组中元素的位置
4.数组元素的遍历/轮询
//正常for循环
for(int i=0;i<array.length;i++)
for(int j=0;j<array[i].length;j++)
System.out.printf(array[i][j]+" ");
System.out.println();
//加强for循环
for(int[] arr:array)
for(int value:arr)
System.out.printf(value+" ");
System.out.println();
5.二维数组在内存中的结构
二维数组的结构应该是类似一个树结构而不是矩阵结构,所以小数组的个数不可以省略,但是可以省略小数组内部的长度
多维数组
1.三维数组
int[][][] array = new int[3][2][3];
-------------------------------------------------------
int[][][] array = new int[3][][];
array[0] = new int[2][];
array[0][0] = new int[1];
System.out.print(array[0][0][0]);