了解java中的多维数组

时间:2015-10-17 21:32:04

标签: java arrays multidimensional-array

我试图理解java中多维数组的概念。以下是发布的代码。

    int [] [] [] x = new int [3] [] [];
    int i, j;
    x[0] = new int[4][];
    x[1] = new int[2][];
    x[2] = new int[5][]; 
    for (i = 0; i < x.length; i++)
     {
        for (j = 0; j < x[i].length; j++) 
         {
            x[i][j] = new int [i + j + 1];
            System.out.println("size = " + x[i][j].length);
         }
     }
     }

我不明白什么存储在&#34; x [0] = new int [4] []; &#34;还有这样的写作背后的想法是什么?任何建议都会非常有用。

2 个答案:

答案 0 :(得分:2)

Java知道一个数组。 java中的技巧是,如果你想要一个多维数组,你只需要在数组中创建一个数组。 用x [0] = new int [4] [];你告诉你多维数组中有4行,但是你没有填充它们。 如果你说新的int [4] [2],每行中将有2个项目,默认值为int。 如果你有一个像c#这样的语言你会说int [,],但这在java中是不可能的。

因此,也可以在第一行放2个,在下一个放3个。 因此可能存在不均匀的长度。

答案 1 :(得分:2)

多维数组基本上是一个数组数组:)像这样:

GCDWebServerFileResponse.m

表示:

int[][] X = new int[4][3];

      X[0]   X[1]   X[2]   X[3]
X -> [    ] [    ] [    ] [    ]
     [    ] [    ] [    ] [    ]
     [    ] [    ] [    ] [    ]

会产生这样的不规则数组:

int[][] X = new int[4][];
X[0] = new int[2]; 
X[1] = new int[1]; 
X[2] = new int[3]; 
X[3] = new int[2]; 

所以每个X的“孩子”都是另一个阵列。就这么简单,尽量不要过度思考这个概念,它并不像看起来那么复杂:)