3D阵列声明时出错

时间:2013-11-14 07:28:16

标签: java arrays

可能是我第一次使用3D阵列。我只是尝试按照1D和2D语法来声明3D,但编译器说类型不匹配。有人能告诉我这背后的原因吗?

Integer[] _1D = new Integer[]{2,4,6,5,6};
Integer[][] _2D = new Integer[][]{{2,3},{4,6},{5,6}};
Integer[][][] _3D = new Integer[][][]{{1,2,3},{4,5,6},{7,8,9},{2,4,5}};

谢谢,

4 个答案:

答案 0 :(得分:3)

您只是再次创建 2-d数组,但 4行3列。这是创建三维数组的正确方法。

Integer[][][] _3D = new Integer[][][]{{{1,2,3},{4,5,6},{7,8,9},{2,4,5}},{{1,2,3},{4,5,6},{7,8,9},{2,4,5}}}; // it should be like this.

答案 1 :(得分:2)

您的3d数组实际上是一个二维数组。添加一个括号对使其成为3d。

Integer[][][] _3D = new Integer[][][]{{ {1,2,3},{4,5,6},{7,8,9} }};

答案 2 :(得分:2)

{{1,2,3},{4,5,6},{7,8,9},{2,4,5}};

这只是一个2D数组。 3D阵列的一个例子是:

Integer[][][] _3D = new Integer[][][]{{{1,2,3},{4,5,6}},{{7,8,9},{2,4,5}}};

3D数组是一个包含数组的数组,它们包含数组,因此您可以看到第一个数组只是一个包含数字的数组的数组。

答案 3 :(得分:1)

再加上@ R.J的回答,更容易看到像这样的三维

Integer[][][] _3D = 
             new Integer[][][]{  // dimension 1
                                 {   // dimension 2
                                    {1,2,3},  // dimension 3
                                    {4,5,6},
                                    {7,8,9},
                                    {2,4,5}
                                 },
                                 {  // dimension 2
                                    {1,2,3}, // dimension 3
                                    {4,5,6},
                                    {7,8,9},
                                    {2,4,5}
                                 }
                              }; // right way

Size of array [2][4][3]
Max indices   [1][3][2]