Java 交换二维数组中的两个元素
我编写此方法用于交换二维数组中的两个元素:Java 交换二维数组中的两个元素,java,arrays,multidimensional-array,swap,Java,Arrays,Multidimensional Array,Swap,我编写此方法用于交换二维数组中的两个元素: public void swap(Object[][] array, int a, int b) { Object temp; temp = array[a]; array[a] = array[b]; array[b] = temp; // Error, Why? } 但在最后一行中有一个编译时错误 例如,我想交换array[i][j+1]和array[i+1][j]元素,该如何调用此方法 (i和j在for循
public void swap(Object[][] array, int a, int b) {
Object temp;
temp = array[a];
array[a] = array[b];
array[b] = temp; // Error, Why?
}
但在最后一行中有一个编译时错误
例如,我想交换array[i][j+1]
和array[i+1][j]
元素,该如何调用此方法
(i
和j
在for循环中为int)
更新
我应该按元素交换吗?还是基于索引
我的参数在swap
数组中应该是怎样的
更新2
public void swap(Object[][] array, int i1, int j1, int i2, int j2) {
Object tempObject = array[i1][j1];
array[i1][j1] = array[i2][j2];
array[i2][j2] = tempObject;
}
这对交换2D数组的任意元素正确吗?您使用的是
a
和b
作为2D数组中的一个坐标,因此array[a]
和array[b]
指的是表示行a
和b
的数组,而不是单个元素
当您试图将对象
分配给最后一行上的对象[]
(数组[b]
)时,会出现错误
按照您的i
和j
说明,同时使用a
和b
Object temp = array[a][b + 1];
array[a][b + 1] = array[a + 1][b];
array[a + 1][b] = temp;
一艘班轮:
(array[a][b + 1], array[b][a + 1]) = (array[b][a + 1], array[a + 1][b])
错误说明了什么?@SamIam
Found Object
requiredObject[]
我不确定“基于元素”和“基于索引”之间的区别。您可以使用这两个索引来交换元素。我想对array[I][j+1]
和array[I+1][j]
的所有交换使用这个swap()
方法,第二个array[I+1][j]
和array[I][j]
方法。您的方法只适用于array[I][j+1]
和数组[i+1][j]
,应该如何更改?这就是您最初指定的所有内容。如果需要两组任意坐标,则在swap
方法中需要两个额外的int
参数,以便可以在任意位置交换任意两个元素[a][b]
和[c][d]
。