是否可以在Java中动态构建多维数组?
2022-09-01 17:35:21
假设我们有 Java 代码:
Object arr = Array.newInstance(Array.class, 5);
会这样吗?作为进一步的注意,如果我们要尝试这样的事情会怎么样:
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);
那么 arr1 将是一个 2D 数组,等效于:
String[2][4] arr1;
怎么样:如果我们在运行时之前不知道这个数组的尺寸怎么办?
编辑:如果这有帮助(我相信它会...),我们正试图从形式的字符串中解析未知维度的数组
[value1, value2, ...]
或
[ [value11, value12, ...] [value21, value22, ...] ...]
等等
Edit2:万一像我这样愚蠢的人尝试这个垃圾,这里有一个至少编译和运行的版本。逻辑是否合理完全是另一个问题......
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);
等等。它只需要是一个巨大的嵌套对象数组