交换两个2D整数数组

时间:2014-06-25 22:46:34

标签: java arrays swap

我希望完全交换两个数组的内容,而不是交换数组中的整数,而是跨越两个数组。我对于从哪里开始感到非常困惑。

...即

Matrix a = 1 2 3   Matrix b = 3 2 1
           4 5 6              6 5 4 

我希望它输出为

Matrix a = 3 2 1   Matrix b = 1 2 3
           6 5 4              4 5 6 

如果这是有道理的。抱歉!我的代码在下面是创建数组的开始部分并用Random填充它,我没有包含测试器,因为我只是输入用于计算的数组,而我还没准备好。< / p>

import java.util.Random;

public class Matrix {
private int[][] matrix;
private int rows;

//constructors
public Matrix() {
    matrix = new int[3][3];
    rows = 3;
}

public Matrix(int size) {
    matrix = new int[size][size];
    rows = size;
}

//Mutators
public void fill() {
    Random r = new Random();

    for (int i = 0; i < this.rows; i++) {
        for (int j = 0; j < this.rows; j++) {
            this.matrix[i][j] = r.nextInt();
        }
    }
}

public void clear() {
    for (int i = 0; i < this.rows; i++) {
        for (int j = 0; j < this.rows; j++) {
            this.matrix[i][j] = 0;
        }
    }
}

public static void swap(Matrix a, Matrix B) {

}

}

1 个答案:

答案 0 :(得分:0)

您只需交换matrix字段:

public static void swap(Matrix a, Matrix b) {
    int[][] tmp = a.matrix;
    a.matrix = b.matrix;
    b.matrix = tmp;
}

您应该首先检查矩阵是否具有相同的大小。或者,也可以在rowsa之间交换b字段的值。