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

bru*_*ais 1 java multidimensional-array

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

char[][] array = { { 'a', 'b', 'c'}, {'d'}, {'e', 'f'}}; //etc....
Run Code Online (Sandbox Code Playgroud)

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

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

char[][] arrayC = malloc(outerArraySize);
for(int i = 0; i < outerArraySize; i++){
    arrayC[i] = malloc(innerArraySize[i]);
}
Run Code Online (Sandbox Code Playgroud)

这个C代码在这里特别制作,因此它可能包含错误,但它的目的只是澄清问题消息.

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

Jon*_*eet 5

当然 - 只需使用数组创建表达式:

char[][] array = new char[outerArraySize][];
for (int i = 0; i < outerArraySize; i++) {
    array[i] = new char[innerArraySize[i]];
}
Run Code Online (Sandbox Code Playgroud)

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

  • @brunoais:它没有改变.这是自Java 1以来的工作.您应该在语法错误时非常小心地看*. (2认同)