在Java中你可以这样做
int[][] i = new int[10][];
这只是创建了10个空的int数组吗?它有其他影响吗?
答案 0 :(得分:4)
它创建了一个10条目的int[]
数组。这10个数组引用中的每一个最初都是null
。然后,您需要创建它们(因为Java没有真正的多维数组,这10个int[]
条目中的每一个都可以是任意长度。)
例如:
int i[][] = new int [10][];
i[0] = new int[42];
i[1] = new int[17];
// ...and so on
答案 1 :(得分:2)
执行代码会创建一个大小为10的数组,其中可以的每个元素都包含对int[]
的引用,但这些元素都被初始化为null。
为了使用 int [] s,你必须为每个元素创建新的int [],如下所示:
for (int n = 0; n < 10; n++)
i[n] = new int[10]; // make them as large as you need
答案 2 :(得分:1)
是的,确实如此;但是,每个数组都是null。然后你必须通过说int [10] [0] = new int [MY_SIZE]或类似的东西来初始化每个子数组。您可以在主数组中包含不同长度的数组;例如,这段代码可以工作:
int[][] i = new int[10][];
for(int ind = 0; ind<10;ind++){
i[ind]=new int[ind];
}
它只是一个数组数组。
答案 3 :(得分:1)
在这里创建十个new int[0]
数组。你必须手动初始化它,当你不需要方矩阵时它很有用:
int[][] array = new int[10][];
for (int i = 0; i < array.length; i++) {
array[i] = new int[i];
}
如果您需要方阵,您可以这样做:
int[][] array = new int[10][10];
它将使用默认值进行初始化。
答案 4 :(得分:0)
这只是声明,你需要初始化它。最初的10个数组将为null。