Java 交换两个二维整数数组
我希望完全交换两个数组的内容,而不是交换数组中的整数,而是在两个数组之间交换。我只是不知道从哪里开始 即 我希望它输出为Java 交换两个二维整数数组,java,arrays,swap,Java,Arrays,Swap,我希望完全交换两个数组的内容,而不是交换数组中的整数,而是在两个数组之间交换。我只是不知道从哪里开始 即 我希望它输出为 Matrix a = 3 2 1 Matrix b = 1 2 3 6 5 4 4 5 6 如果这有道理的话。很抱歉下面是创建数组并用随机数填充的开始部分的代码,我没有包括测试人员,因为我只是输入用于计算的数组,我还没有准备好这样做 import java.util.Random; public class Matri
Matrix a = 3 2 1 Matrix b = 1 2 3
6 5 4 4 5 6
如果这有道理的话。很抱歉下面是创建数组并用随机数填充的开始部分的代码,我没有包括测试人员,因为我只是输入用于计算的数组,我还没有准备好这样做
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) {
}
}
import java.util.Random;
公共类矩阵{
私有int[][]矩阵;
私有int行;
//建设者
公共矩阵(){
矩阵=新整数[3][3];
行数=3;
}
公共矩阵(整数大小){
矩阵=新整数[大小][大小];
行=大小;
}
//突变子
填空{
随机r=新随机();
for(int i=0;i
您只需交换矩阵
字段即可:
public static void swap(Matrix a, Matrix b) {
int[][] tmp = a.matrix;
a.matrix = b.matrix;
b.matrix = tmp;
}
您可能应该首先检查矩阵是否具有相同的大小。或者,也可以在
a
和b
之间交换行
字段的值。第一个问题:当演示不是正方形时,代码使用正方形矩阵。解决这个问题。对于交换本身,使用一个临时数组,其大小等于您拥有的行数。然后你可以做:temp=a;a=b;b=温度代码>可以有临时变量吗?(这种情况下,除非这是一个(我觉得很愚蠢的)被禁止的练习)是的,临时变量很好,它实际上比我想象的要简单得多,我在一个疯狂的循环中一个接一个地交换元素。谢谢你的输入,我对伪代码看得太远了,认为我需要循环并更改每个元素。谢谢你。我只是使用了try/catch,如果它们不匹配,就会抛出一个错误。
public static void swap(Matrix a, Matrix b) {
int[][] tmp = a.matrix;
a.matrix = b.matrix;
b.matrix = tmp;
}