Java 方形矩阵列的二维数组上移或下移

Java 方形矩阵列的二维数组上移或下移,java,arrays,data-structures,Java,Arrays,Data Structures,我知道如何移动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];

我知道如何移动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;
    }

基本上,要移动列,需要进行一些额外的检查,因为二维数组并不总是完美矩阵,例如:

int[][]数组=新的int[4][]可能是这样的

2 3 4 5
1 1 1    
1 2    
1 2 3 4

如果要移动第三列(4,1,null,3),您将看到控制null值所需的额外工作。

错误似乎出现在
colshiftRight

更改:

array[i][0] = temp;
致:


您可能还想将该方法重命名为
colshiftDown

谢谢,如果它是用于平方矩阵的?然后:)无论如何,我会尽我最大的努力,这是一个编码挑战,我没有足够的时间:(我对一些答案和你的问题的处理有点困惑。“行”是指类似于表格结构的水平部分,对吗?你不能将行“向右”移动,但可以将其“向上”或“向下”移动。您可以左右移动列。或者使用反向定义吗?
array[0][i] = temp;