【问题标题】:Trouble with 4D Array4D阵列的问题
【发布时间】:2012-03-29 23:13:47
【问题描述】:

谁能解释我为什么会收到这个错误

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

在这段代码中?

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

【问题讨论】:

  • 您似乎混淆了尺寸和尺寸。每个额外的维度都会添加一个“内部”数组,因此基本上是一个数组等。而大小是它可以容纳多少元素。

标签: java arrays string multidimensional-array


【解决方案1】:

变量

String[][][][] names

是一个变量,表示一个四维字符串数组——即字符串数组数组的数组。字面意思

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

是一个一维字符串数组,里面有四个元素。注意区别——四个元素的数组是String[],而不是String[][][][]。一维数组可以包含任意数量的元素。如果要表示 2D 或 3D 网格之类的东西,向数组添加更多维度很有用,但说数组包含更多元素并不是正确的方式。

要解决这个问题,你想写

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

这确实可以正常工作。

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

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

在这里,数据是二维的 - 您可以选择您希望将哪一行作为第一个数组索引,以及您希望将哪一列作为第二个数组索引。请注意每行和每列中数组元素的数量如何独立于数组中的维数,因为它们是独立的概念。

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    如果你想要一维数组;

    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

    【讨论】:

    • 您的 4D 初始化无法编译。
    • 这个初始化在我的系统上编译得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多