繁体   English   中英

2D阵列旋转

[英]2D array rotation

我有一个2D数组,我想顺时针翻转(不,这不是一项作业!)。 当我的代码尝试通过创建一个新的临时数组翻转数组时,我得到以下输出。

// Original array
I/System.out: 10 11 12 13 14 
I/System.out: 15 16 17 18 19 

// Temp array
I/System.out: 10 15 
I/System.out: 11 16 
I/System.out: 12 17 
I/System.out: 13 18 
I/System.out: 14 19 

我想要的是第二个数组(15-19)在第一列中。 我只是不明白我在做什么错。

代码如下:

Object[][][] containerTemp = new Object[zDim][yDim][xDim];
for (int z = 0; z < zDim; z++) {
   for (int y = yDim - 1; y >= 0; y--) {
      for (int x = 0; x < xDim; x++) {
         containerTemp[z][y][x] = container[z][x][y];
      }
   }
}

Temp数组的最终结果对于项目而言是正确的,但是我还有其他代码可以完成此部分,我只希望这些嵌套的for循环“翻转”数组而不移动值。

尝试:

Object[][][] containerTemp = new Object[zDim][yDim][xDim];
for (int z = 0; z < zDim; z++) {
   for (int y = yDim - 1; y >= 0; y--) {
      for (int x = 0; x < xDim; x++) {
         containerTemp[z][y][xDim - (x + 1)] = container[z][x][y]; // change x target.
      }
   }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM