小编Jor*_*dan的帖子

是否可以在Java中动态构建多维数组?

假设我们有Java代码:

Object arr = Array.newInstance(Array.class, 5);
Run Code Online (Sandbox Code Playgroud)

那会跑吗?作为进一步的说明,如果我们尝试这样的事情怎么办:

Object arr1 = Array.newInstance(Array.class, 2);
Object arr2 = Array.newInstance(String.class, 4);
Object arr3 = Array.newInstance(String.class, 4);
Array.set(arr1, 0, arr2);
Array.set(arr1, 1, arr3);
Run Code Online (Sandbox Code Playgroud)

那么arr1会是一个2D数组,相当于:

String[2][4] arr1;
Run Code Online (Sandbox Code Playgroud)

怎么样:如果我们在运行时之前不知道这个数组的尺寸怎么办?

编辑:如果这有帮助(我相信它会...)我们试图从表单的字符串解析未知维度的数组

[value1, value2, ...]
Run Code Online (Sandbox Code Playgroud)

要么

[ [value11, value12, ...] [value21, value22, ...] ...]
Run Code Online (Sandbox Code Playgroud)

等等

编辑2:如果有人像我一样愚蠢尝试这个垃圾,这里是一个至少编译和运行的版本.逻辑是否合理完全是另一个问题......

Object arr1 = Array.newInstance(Object.class, x);
Object arr11 = Array.newInstance(Object.class, y);
Object arr12 = Array.newInstance(Object.class, y);
...
Object arr1x = Array.newInstance(Object.class, y);
Array.set(arr1, 0, arr11);
Array.set(arr1, 1, arr12);
...
Array.set(arr1, x-1, arr1x);
Run Code Online (Sandbox Code Playgroud)

等等.它只需要是一个巨大的嵌套对象数组

java arrays dynamic multidimensional-array

24
推荐指数
1
解决办法
2万
查看次数

标签 统计

arrays ×1

dynamic ×1

java ×1

multidimensional-array ×1