Java学习——二维数组

最近学习了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]);//报错,空指针异常
    }
}            
原文地址:https://www.cnblogs.com/xianghaoran/p/12227378.html