该方法的缺点就是,如果矩阵较大时,矩阵所需要浪费的空间可能会随之增大,例如2x8这样的情况,会扩展为8x8,多出6x8的无用空间,但方便交换位置
GetMatrix是获取用户输入的矩阵,代码在我另一篇文章里,后续有更好的方法会继续修改
https://blog.csdn.net/weixin_41878312/article/details/84338559
public class Main {
public static void main(String[] args) {
/**
* 获取矩阵
*/
int[][] array;
int[][] array_copy;
int[][] array_changed;
int counter;
GetMatrix one = new GetMatrix();
array = one.get();
one = null;
/**
* 创建array_copy,array_changed
*/
if (array.length>array[0].length){
counter = array.length;
}else {
counter = array[0].length;
}
array_changed = new int[counter][counter];
array_copy = new int[counter][counter];
/**
* 初始化 array_copy
* 此处不应该用array.clone(),array_copy会随原数据array变化而变化
*/
for (int i = 0; i < counter;i++) {
for (int j = 0; j < counter; j++) {
array_copy[i][j] =0;
}
}
/**
* array_copy赋值
*/
for (int i = 0; i < array.length;i++) {
for (int j = 0; j < array[0].length; j++) {
array_copy[i][j] =array[i][j];
}
}
/**
* 矩阵置换
*/
for (int i = 0; i < counter;i++) {
for (int j = 0; j < counter; j++) {
array_changed[j][i] = array_copy[i][j];
array_changed[i][j] = array_copy[j][i];
}
}
/**
* 打印新矩阵
*/
for (int i = 0; i < array[0].length; i++) {
for (int j = 0; j < array.length; j++) {
System.out.print(array_changed[i][j] + " ");
}
System.out.print("\n");
}
}
}