12java的多维数组

多维数组

多维数组可以看成数组的数组,比二位数组就是一个特殊的数组,其中的每一个元素都是一个一维数组

int array[][]=new int[2][3];

直接上代码,太精彩了,颠覆了我以前对数组的认知。

package MethodDemo;

public class Demo09 {
    public static void main(String[] args) {
        //int[][] array = {{1, 2}, {3, 4}, {5, 6}};//二维数组的初始化,3行2列,此处着重理解记忆
        int[][] array = new int[3][2];//产生一个三行两列的数组,不初始化,默认值是全0
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                array[i][j]=i*j;
            }
        }
        /*颠覆我之前对二维数组认知的地方来了
        1,2    array[0] array[0]是一个一维数组(对象),它里面存的是一个数组,有两个元素
        3,4    array[1]
        5,6    array[2]
         */
        System.out.println(array.length);//三个array[i]
        System.out.println(array[1].length);//输出结果是2,也就是一维数组array[1]的长度
        Demo08 demo08 = new Demo08();
        demo08.PrintArray(array[2]);
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j]+" ");
                    if(j==array[i].length-1)
                    System.out.println();
            }
        }
    }
}

我以前理解的二维数组是直接认为它是一个矩阵,有m行n列,这样理解在数据操作上也没有大问题,只是没有理解多维数组本质。

同样,如果是三维数组,那就是array[0]里面存的是array【0】【i】,而array【0】【i】里面存的是array【0】【i】【0-j】,此时array【0】、array【0】【i】都成了对象。

  • 下面是二维数组的内存形式。
    1. array【i】是一个对象,里面存储着array【i】【j】,array【i】【j】是成员(元素),如图1。
    2. 理解了二维数组的本质之后,我们在用矩阵的视角来看二维数组,int[][] array = new int【3】【2】;3行2列的矩阵,其中行是new出来一位数组对象的个数,列是一位数组对象中二维数组元素的个数。再看一下直接初始化数组成员的例子int【】【】 array = {{1, 2}, {3, 4}, {5, 6}};下面用图2进行解释。如图2所示,二维数组只不过是把一维数组的每个元素有扩展成一个一维数组,用相同的格式括起来。
    3. 由于Markdown命令的原因,使用因为英文括号可能会不能显示,所以在文本区使用中文的括号。

​ 图1

​ 图2

自学java,请多多指教!
原文地址:https://www.cnblogs.com/fanfada/p/13763770.html