我知道三维(3D)数组可以被认为是数组数组的数组。我有int [3] [4] [2] 3Darray我可以初始化使用for循环
实施例
public class JavaProgram
{
public static void main(String args[])
{
int arr[][][] = new int[3][4][2];
int i, j, k, num=1;
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
{
for(k=0; k<2; k++)
{
arr[i][j][k] = num;
num++;
}
}
}
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
{
for(k=0; k<2; k++)
{
System.out.print("arr[" +i+ "][" +j+ "][" +k+ "] = " +arr[i][j][k]+ "\t");
}
System.out.println();
}
System.out.println();
}
}
}
输出看起来像
我有像
这样的3D数组int[][][] matrix = {{{1, 2, 3},{4, 5, 6}}, {
{10, 20, 30},{40, 50, 60}}};
我无法找到像矩阵[0] [0] [0] = 1这样的所有元素的位置。什么是其他元素的索引值。请任何人帮我找到
答案 0 :(得分:2)
只需像在示例中那样迭代数组,但使用length
- 属性:
int[][][] matrix = { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 10, 20, 30 }, { 40, 50, 60 } } };
for (int i = 0; i < matrix.length; i++)
{
for (int j = 0; j < matrix[i].length; j++)
{
for (int k = 0; k < matrix[i][j].length; k++)
{
System.out.print("matrix[" + i + "][" + j + "][" + k + "] = " + matrix[i][j][k] + "\t");
}
System.out.println();
}
System.out.println();
}
如果要访问特定元素,还可以使用length
找出有效范围。
您可以找到更多信息here。
答案 1 :(得分:2)
这是你的阵列:
int[][][] matrix = { //-------------------Start of your first array contains two elements as 2D array.
{ //----------First element of First array, which contains two 1D array.
{ 1, 2, 3 }, //First element of 2D array.
{ 4, 5, 6 } //Second element of 2D array.
}, //First element of 3D array ends here.
{ // Second element of 3D array contains 2 1D array.
{ 10, 20, 30 },
{ 40, 50, 60 }
}
};
现在,如果你想得到任何数字的位置,举个例子我想要20的位置:
现在,如果你想要完整的循环。使用length来找出将作为索引的数组长度。
for (int i = 0; i < matrix.length; i++)
{
for (int j = 0; j < matrix[i].length; j++)
{
for (int k = 0; k < matrix[i][j].length; k++)
{
System.out.print("[" + i + "][" + j + "][" + k + "] = " + matrix[i][j][k] + "\t");
}
System.out.println();
}
System.out.println();
}