二维数组概念
二维数组的概念
对于二维数组的理解,我们可以看成一位数组arrary1有作为另一个一维数组arrary2的元素存在。从底层机制来看没有多维数组概念
2二维数组的使用
二维数组的声明与初始化
如何调用指定的元素
如何获取数组的长度
数组元素默认初始化值
数组的内存解析
初始化
二维数组的声明与初始化 int[] arrq = new int[]{1,2,3};//一维数组的静态 //动态初始化 String [][] arr3 = new String[3][];//正确。但元素2未赋值调用会报空指针 String[][] arr2 = new String[3][2];//正确 //调用数组元素 int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};//静态初始化 System.out.println(arr1[0][1]); 测试 2 null
调用数组元素2
String [][] arr3 = new String[3][];//正确;但里面数组未赋值,不能调用 String[][] arr2 = new String[3][2];//正确 //调用数组元素 int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};//静态初始化 System.out.println(arr1[0][1]); System.out.println(arr2[1][1]); System.out.println(" "); //打印两个换行 arr3[1] = new String[4];//初始化arr3[1]这个元素 //调用这个arr3[1][0]元素的值 System.out.println(arr3[1][0]); 测试 2 null null
获取数组长度
int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};//静态初始化 System.out.println("外围数组长度: "+arr1.length); //获取外围数组的长度 System.out.println("内层循环下标1(从0开始)的数组长度: "+arr1[1].length);//获取内层数组的长度 System.out.println("****************************************************************"); 测试 外围数组长度: 3 内层循环下标1(从0开始)的数组长度: 2 ****************************************************************
遍历二维数组
for (int i =0; i<arr2.length;i++){ for (int z=0; z<arr2[i].length;z++){ //System.out.println(arr2[i]); System.out.println("********"); System.out.println(arr2[i][z]); } } 测试 ******** null ******** null ******** null ******** null ******** null ******** null
默认初始化值
String[][] arr2 = new String[3][2];//正确 for (int i =0; i<arr2.length;i++){ for (int z=0; z<arr2[i].length;z++){ System.out.println(arr2[i]);//内存地址 System.out.println("********"); System.out.println(arr2[i][z]);//null } } 测试 [Ljava.lang.String;@1540e19d ******** null [Ljava.lang.String;@1540e19d ******** null [Ljava.lang.String;@677327b6 ******** null [Ljava.lang.String;@677327b6 ******** null [Ljava.lang.String;@14ae5a5 ******** null [Ljava.lang.String;@14ae5a5 ******** null
打印杨晖三角
for (int i=0; i<yanghuisanjiao.length;i++){ yanghuisanjiao[i] = new int[i+1]; //连续赋值 yanghuisanjiao[i][0] = yanghuisanjiao[i][i] =1; if (i>1){ for (int j = 1; j<yanghuisanjiao[i].length-1;j++ ){ yanghuisanjiao[i][j]= yanghuisanjiao[i-1][j-1]+ yanghuisanjiao[i-1][j]; } } } for (int i =0; i<yanghuisanjiao.length;i++){ for (int j=0; j<yanghuisanjiao[i].length;j++){ System.out.print(yanghuisanjiao[i][j]+" "); } System.out.println(); } 测试 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1