1、声明格式
1 数组的元素类型[][] 数组名;//推荐写法 2 3 或 4 数组的元素类型 数组名[][]; 5 6 或 7 数组的元素类型[] 数组名[];
1 class Test04Review4{ 2 public static void main(String[] args){ 3 //标准声明二维数组的方式 4 int[][] arr1 = new int[3][]; 5 6 //其他的方式 7 int arr2[][] = new int[3][]; 8 9 int[] arr3[] = new int[3][]; 10 11 System.out.println(arr1);//[[I@15db9742 12 System.out.println(arr2);//[[I@6d06d69c 13 System.out.println(arr3);//[[I@7852e922 14 15 //面试题 16 int[] x, y[]; 17 //答案:x是一维数组,y是二维数组 18 19 //x = new int[2][];//错误,因为x是一维数组 20 //y = new int[3];//错误的,一维y是二维数组 21 } 22 }
2、初始化
(1)静态初始化
1 数组的元素类型[][] 数组名 = {{第一行的元素} , {第二行的元素} 。。。}; 2 3 //分开两行代码 4 数组的元素类型[][] 数组名; 5 数组名 = new 数组的元素类型[][]{{第一行的元素} , {第二行的元素} 。。。};
(2)动态初始化:每一行的列数可能不同
1 数组的元素类型[][] 数组名 = new 数组的元素类型[总行数][]; 2 3 //单独指定每一行的列数 4 数组名[行下标] = new 元素的类型[列数];//每一行是一个一维数组
(3)动态初始化:每一行的列数相同
1 数组的元素类型[][] 数组名 = new 数组的元素类型[总行数][列数];
3、遍历
二维数组的长度,二维数组的总行数:数组名.length
二维数组的某一行:数组名[行下标]
二维数组的某一行的列数,某一行的长度:数组名[行下标].length
行下标的范围:[0,数组名.length-1]
二维数组的某个元素:数组名[行下标][列下标]
列下标的范围:[0,数组名[行下标].length-1]
1 for(int i=0; i<数组名.length; i++){ 2 for(int j=0; j<数组名[i].length; j++){ 3 //元素:数组名[i][j] 4 } 5 }