如何打印出转置的3D阵列

时间:2018-05-20 08:55:38

标签: java arrays for-loop transpose

我有以下3D数组,我需要将其打印为转置数组。它有10列,7行,由(x,y)或(col,row)

处理
    int[][][] map = {
    {{1, 1, 3, 3, 4, 4, 4, 4}, {}, {}, {2, 2}, {}, {}, {}}, //first column
    {{}, {}, {}, {}, {}, {}, {}},
    {{}, {}, {}, {}, {}, {}, {}},
    {{}, {}, {}, {}, {}, {}, {}},
    {{}, {}, {}, {}, {}, {}, {0}},
    {{}, {}, {}, {}, {}, {}, {}},
    {{}, {}, {}, {3, 4}, {}, {}, {}},
    {{}, {}, {}, {}, {}, {}, {}},
    {{}, {}, {}, {}, {}, {}, {}},
    {{}, {}, {}, {}, {}, {}, {}}
};

我尝试切换条件,但它总是崩溃。

for (int threeD = 0; threeD < map.length; threeD++){
        for(int twoD = 0; twoD < map[threeD].length; twoD++){
            for (int oneD = 0; oneD < map[threeD][twoD].length; oneD++){

                          System.out.print(map[threeD][twoD][oneD]);
                 }
           System.out.print(" ");
        }
        System.out.println();
    }

执行上面的代码给出了这个输出:

    {1, 1, 3, 3, 4, 4, 4, 4} {} {} {2 2} {} {} {}
    {} {} {} {} {} {} {}
    {} {} {} {} {} {} {}
    {} {} {} {} {} {} {}
    {} {} {} {} {} {} {0}
    {} {} {} {} {} {} {}
    {} {} {} {3 4} {} {} {}
    {} {} {} {} {} {} {}
    {} {} {} {} {} {} {}
    {} {} {} {} {} {} {}

我想要的输出应如下所示:

 {1 1 3 3 4 4 4 4} {} {} {} {} {} {} {} {} {}
 {} {} {} {} {} {} {} {} {} {}
 {} {} {} {} {} {} {} {} {} {}
 {2 2} {} {} {} {} {} {3  4} {} {} {}
 {} {} {} {} {} {} {} {} {} {}
 {} {} {} {} {} {} {} {} {} {}
 {} {} {} {} {0} {} {} {} {} {}

(我离开括号以更好地想象它)

1 个答案:

答案 0 :(得分:0)

想出来了!

  for (int threeD = 0; threeD < map[0].length; threeD++){
    for(int twoD = 0; twoD < map.length; twoD++){
        for (int oneD = 0; oneD < map[twoD][threeD].length; oneD++){

                      System.out.print(map[twoD][threeD][oneD]);
             }
       System.out.print(" ");
    }
    System.out.println();
}