我知道如何移动double类型的2d数组的行 其中i是矩阵大小
public static void rowshiftRight(int i, double[][] array) {
int m = array[i].length;
double temp = array[i][m-1];
for (int k=m-1; k>=1; k--){
array[i][k] = array[i][k-1];
}
array[i][0] = temp;
}
我试图将上述逻辑改为shiftcolum,任何帮助都会感激不尽
//wrong code
public static void colshiftdownorup(int i, double[][] array) {
int m = array.length;
double temp = array[m-1][i];
for (int k=m-1; k>=1; k--){
array[k][i] = array[k-1][i];
}
array[i][0] = temp;
}
答案 0 :(得分:1)
基本上,要移动列,您需要进行一些额外的检查,因为2D数组并不总是完美的矩阵,例如:
int[][] array = new int[4][];
可能就像这样
2 3 4 5
1 1 1
1 2
1 2 3 4
如果要移动第3列(4,1,null,3),您将看到控制空值所需的额外工作。
答案 1 :(得分:1)
错误似乎位于colshiftRight
更改:
array[i][0] = temp;
到:
array[0][i] = temp;
您可能还想将方法重命名为colshiftDown