如何查找3D数组索引值

时间:2017-04-04 06:19:02

标签: java arrays

我知道三维(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();
          }
       }
    }

输出看起来像

enter image description here

我有像

这样的3D数组
int[][][] matrix = {{{1, 2, 3},{4, 5, 6}}, {
            {10, 20, 30},{40, 50, 60}}};

我无法找到像矩阵[0] [0] [0] = 1这样的所有元素的位置。什么是其他元素的索引值。请任何人帮我找到

2 个答案:

答案 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的位置:

  1. 20个数字存在于3D阵列的第二个2D阵列中。所以矩阵[1]。
  2. 20个数字存在于2D阵列的第一个1D阵列中。矩阵[1] [0]。
  3. 存在于1D阵列的第二位置的20个数字。矩阵[1] [0] [1]。
  4. 现在,如果你想要完整的循环。使用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();
        }