创建一个内部数组具有不同长度的数组

时间:2012-10-14 07:03:23

标签: java multidimensional-array

如果我在编译时知道数组的格式,我已经知道如何在Java中创建不同长度的数组 例如:

char[][] array = { { 'a', 'b', 'c'}, {'d'}, {'e', 'f'}}; //etc....

问题是我需要在运行时制作。我不知道编译时数组需要的大小,但我会在运行时知道它。

这里的目标是在java中创建(并且在java中具有数组的优点(如.length))来制作C中的内容:

char[][] arrayC = malloc(outerArraySize);
for(int i = 0; i < outerArraySize; i++){
    arrayC[i] = malloc(innerArraySize[i]);
}

此C代码是临时制作的,因此它可能包含错误,但其目的只是澄清问题消息。

无论如何在Java中正确地做到这一点?

1 个答案:

答案 0 :(得分:5)

当然 - 只需使用array creation expression

char[][] array = new char[outerArraySize][];
for (int i = 0; i < outerArraySize; i++) {
    array[i] = new char[innerArraySize[i]];
}

您可能还需要考虑使用字符串而不是字符数组,具体取决于具体情况。