最近学习了Java中的二维数组,用随笔记录一下
二维数组的使用:
1,理解:
对于二维数组的理解,可以看作是一维数组array1又作为另一个数组array2的元素而存在。
所以,从数组底层的运行机制上来看,是不存在多维数组的。
2,使用:
① 二维数组的声明及初始化;
② 如何调用数组指定位置的元素;
③ 如何获取数组长度;
④ 如何遍历数组;
⑤ 数组元素的默认初始化值;
⑥ 理解二维数组的内存解析;
public class array2 { public static void main(String[] args) { //1.二维数组的声明及初始化; int[][] arr1 = new int[][]{{1, 2, 3}, {4, 5}, {6, 7, 8}};//静态初始化 String[][] arr2 = new String[3][2];//动态初始化1 String[][] arr3 = new String[3][];//动态初始化2 /* 错误的声明方式: String[][] arr = new String[][2]; String[4][3] arr = new String[][]; int[][] arr1 = new int[3][3]{{1, 2, 3}, {4, 5}, {6, 7, 8}};等 */ //下面是几种正确的方式 int arr4[][] = new int[3][4]; int[] arr5[] = {{1, 2, 3}, {4, 5}, {6, 7, 8}}; //2.调用二维数组指定位置的元素; System.out.println("-----------------------"); System.out.println(arr1[0][1]); System.out.println(arr2[1][1]);//未赋值的元素为null; arr3[1] = new String[4];//把arr3的第二个元素,赋值为一个包含4个元素的数组 //理解时应联系内存结构思考 System.out.println(arr3[1][1]); //3.获取数组长度 System.out.println("-----------------------"); System.out.println(arr1.length);//3 System.out.println(arr1[0].length);//3 System.out.println(arr1[1].length);//2 //4.如何遍历二维数组 System.out.println("-----------------------"); for (int i = 0; i < arr1.length; i++) { for (int j = 0; j < arr1[i].length; j++) { System.out.print(arr1[i][j] + " "); } System.out.println(); } //5.数组元素的默认初始化值; /*规定:外层元素——arr1[0],arr1[1]等; 内层元素——arr1[0][2],arr1[1][1]等;*/ System.out.println("-----------------------"); int arr7[][] = new int[4][3]; System.out.println(arr7[0]);//地址值 [I@4554617c System.out.println(arr7[0][0]);//0 已经到内层了 System.out.println("-----------------------"); String arr8[][] = new String[4][3]; System.out.println(arr8[1]);//地址值 [Ljava.lang.String;@74a14482 System.out.println(arr8[1][1]);//null System.out.println("-----------------------"); double arr9[][] = new double[4][]; System.out.println(arr9[1]);//null System.out.println(arr9[1][0]);//报错,空指针异常 } }