可能是我第一次使用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}};
谢谢,
答案 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]