4D阵列问题

时间:2012-03-29 23:13:48

标签: java arrays string multidimensional-array

有人可以解释为什么我收到此错误

Type mismatch: cannot convert from String to String[][][]

在这段代码中?

String [][][][] names = {"zach","zach","zach","zach"};

2 个答案:

答案 0 :(得分:5)

变量

String[][][][] names

是表示四维字符串数组的变量 - 即字符串数组数组的数组。文字

{"zach","zach","zach","zach"};

是一个包含四个元素的单维字符串数组。注意区别 - 四个元素的数组是String[],而不是String[][][][]。一维数组可以包含任意数量的元素。如果要表示类似2D或3D网格的内容,则向数组添加更多维度非常有用,但这并不是表示数组包含更多元素的正确方法。

要解决此问题,您需要编写

String[] names = {"zach","zach","zach","zach"};

这确实可以正常工作。

如果你想要一个2D数组的字符串,你可以这样做:

String[][] nameGrid = {
                         {"Alice", "Bob", "Charlie"},
                         {"David", "Eliza", "Fred"},
                         {"Gary", "Helen", "Isaac"},
                      };

这里,数据是二维的 - 您选择哪个行作为第一个数组索引,哪个列作为第二个数组索引。请注意每个行和列中的数组元素的数量如何与数组中的维数无关,因为这些是不同的概念。

希望这有帮助!

答案 1 :(得分:0)

如果你想要一维数组;

String[] names = {"zach","zach","zach","zach"};

如果你想要一个4D阵列;

// Only filling one dimension of the 4D array
String [][][][] names = {{{{"zach","zach","zach","zach"}}}};

参考; http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx