在2D数组中交换两个元素

时间:2014-08-04 21:34:08

标签: java arrays multidimensional-array swap

我写这个方法来交换2D数组中的两个元素:

    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]元素,应该如何调用此方法?

ij在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数组的任意元素是否正确?

2 个答案:

答案 0 :(得分:1)

您使用ab作为2D阵列中的每个坐标,因此array[a]array[b]指的是代表行{{1}的数组}和a,而不是单个元素。

当您尝试在最后一行为bObject)分配Object[]时,会出现错误。

同时使用array[b]a作为bi说明。

j

答案 1 :(得分:0)

一线:

(array[a][b + 1], array[b][a + 1]) = (array[b][a + 1], array[a + 1][b])