Java二维数组的使用

1.二维数组的初始化:
和一维数组一样,也有静态初始化和动态初始化。(具体如下)

public class Main {
    public static void main(String[] args) {
        int[][] garb=new int[][]{{1,2,3,4},{8,9,10}};
        //静态初始化
        String[][] matter=new String[4][5];
        //动态初始化一
        float[][] test=new float[5][];
        //动态初始化二
        System.out.println();
    }
}

注意:无论一维数组还是二维数组静态初始化都可以写成下形式,这样系统会根据你的赋值进行判断的。也是可行的,但是为了规范还是都写全叭。

public class Main {
    public static void main(String[] args) {
        int[][] garb={{2,5,8},{1,2,3}};
        System.out.println(garb[1][1]);
    }
}

2.二维数组的长度:
二维数组可以理解为由行和列组成,都在堆中。因为二维长度无法计算,所以只可以计算出行或者列的长度。
所以就直接看下例叭:

public class Main {
    public static void main(String[] args) {
        int[][] garb=new int[][]{{1,2,3},{8,9,10}};
        System.out.println(garb.length);
    }
}

上例是求行的长度,即结果为2

public class Main {
    public static void main(String[] args) {
        int[][] garb=new int[][]{{1,2,3},{8,9,10}};
        System.out.println(garb[1].length);
    }
}

这个例子求的是第一行中的元素的长度,即列的长度为3。

3.遍历二维数组:
一维数组用for循环做遍历,二维数组也可以,也就是用两个for循环嵌套。如下例:

public class Main {
    public static void main(String[] args) {
        int[][] garb=new int[][]{{1,2,3,4},{8,9,10}};
        for (int i=0;i< garb.length;i++){
            for (int j=0;j<garb[i].length;j++){
                System.out.print(garb[i][j]+"\t");
            }
            System.out.println();
        }
    }
}

4.二维数组的调用:
和一维数组一样,只要写对角标就可以正确调用,就不举例子了。

5.二维数组的默认初始化值:
二维数组的默认初始化值如果具体到元素,则与一维数组相同(即1.整型是0;2.浮点型是0.0;3.char型是0;4.boolean型是false;5.引用型是null)如下:结果就是0

public class Main {
    public static void main(String[] args) {
        int[][] garb=new int[4][5];
        System.out.println(garb[0][0]);
    }
}

但是,如果只是求外层元素的默认初始化值(如下例),输出结果为该外层元素的地址值。下例子结果是[I@1b6d3586

public class Main {
    public static void main(String[] args) {
        int[][] garb=new int[4][5];
        System.out.println(garb[0]);
    }
}

如果未给内层元素数组长度,但是还是要求外层元素的默认初始化值,则如下例:运行后会发现,无论数组是啥类型的,结果都是null

public class Main {
    public static void main(String[] args) {
        int[][] garb=new int[5][];
        System.out.println(garb[0]);
    }
}

也许你可能疑问,如果我未给内层元素数组长度,却求内层元素的默认初始化值(如下例)那么结果肯定会报错。

public class Main {
    public static void main(String[] args) {
        int[][] garb=new int[4][];
        System.out.println(garb[0][0]);
    }
}