数组交换 - 二维数组

4
我正在处理一个二维数组中的索引交换问题。我似乎已经走在了正确的道路上,但是它并没有按照我想要的方式交换数组。
第一行的索引 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 ;
}

如果您有关于最佳解决方法的想法,我们将不胜感激。


6
请告诉我们你想要的方式。你是在尝试转置一个方阵吗? - Sergey Kalinichenko
你想从[[0,1,2,3,4],[5,6,7,8,9]]得到[[5,6,7,8,9],[0,1,2,3,4]]吗? - mreithub
是的。但请记住,我有4行。它们不能按特定顺序交换。如果我想要,我可以将第1行与第3行交换,或将第2行与倒数第1行交换,等等。 - TimelordViktorious
1个回答

4

在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] 不需要与其相反的进行交换。 - mreithub
不行,我还是做不对。我必须循环遍历索引 j,并且将第一行的这些索引与第二行进行交换。 - TimelordViktorious
@MH1993编辑了答案。这是你想要的吗? - mreithub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接