我试图理解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;还有这样的写作背后的想法是什么?任何建议都会非常有用。
答案 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的“孩子”都是另一个阵列。就这么简单,尽量不要过度思考这个概念,它并不像看起来那么复杂:)