Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 交换二维数组中的两个元素_Java_Arrays_Multidimensional Array_Swap - Fatal编程技术网

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
required
Object[]
我不确定“基于元素”和“基于索引”之间的区别。您可以使用这两个索引来交换元素。我想对
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]