带有空第二个括号的Java数组

时间:2013-03-20 02:49:05

标签: java

在Java中你可以这样做

int[][] i = new int[10][];

这只是创建了10个空的int数组吗?它有其他影响吗?

5 个答案:

答案 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。