【问题标题】:Array swap - 2d array数组交换 - 二维数组
【发布时间】:2012-11-08 00:19:44
【问题描述】:

我正在研究交换二维数组中的索引。我似乎走在正确的轨道上,但它并没有按照我想要的方式交换数组。

第一行的索引j需要与第二行的索引j交换:

for (int j = 0; j < array.length ; j++){  
     int temp = array[row1][j]
     array[row1][j]=array[j][row1]
     array[j][row1] = temp ;
}

任何关于如何最好地解决这个问题的想法都将不胜感激。

【问题讨论】:

  • 请告诉我们什么是“你想要的方式。你想转置一个方阵吗?
  • 你想从[[0,1,2,3,4],[5,6,7,8,9]][[5,6,7,8,9],[0,1,2,3,4]]吗?
  • 是的。但是,请记住我有 4 行。它们不能按特定顺序交换。如果需要,我可以将第 1 行与第 3 行交换,或者将第 2 行与第 -1 行交换,等等。

标签: java arrays


【解决方案1】:

由于java中的二维数组实际上是对其他数组的引用数组,所以可以简单地交换引用,如下所示:

public static void swapRows(int array[][], int rowA, int rowB) {
   int tmpRow[] = array[rowA];
   array[rowA] = array[rowB];
   array[rowB] = tmpRow;
}

/edit:编辑了我之前误解的答案**

【讨论】:

  • 嗯,我想甚至可以从int col=row+1 开始,例如array[10][10] 不需要与它的对立面交换
  • 不。我仍然没有做对。我必须遍历索引 j,并将这些索引从第一行交换到第二行。
  • @MH1993 编辑了答案。这就是你想要的吗?
猜你喜欢
  • 2021-09-15
  • 2018-11-02
  • 2021-03-29
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多