使用2D数组中的列切换行

时间:2013-12-06 05:20:23

标签: java multidimensional-array swap

所以我想弄清楚如何用第j列交换第i行。我到处搜索,仍然无法找到类似于我正在寻找的解决方案。 (几乎用第二列切换第一行)我假设我将不得不创建一个临时值来保存值然后交换它,但我只能用另一行或列交换另一行或列柱。在这一点上,我完全迷失了。任何建议将不胜感激。

为了更好地澄清它可能是什么样子

输入:

2 3 4  
1 2 3  
4 5 6  

输出:

     3    2    5
     1    3    3
     4    4    6

代码:

private int n;

private int [][] Matrix = new int[n][n];

public void switchRowColumn(int i, int j)

{

    for(int i=0; i< Matrix.length; i++)

{

1 个答案:

答案 0 :(得分:0)

我发现这有效,看看它是否适合你...

public class Swap{

public static void main(String[]args){
    int [][] array = {
            {2,3,4},
            {1,2,3},
            {4,5,6}
            };

    swap(array, 0 , 1);
}
public static void swap ( int [][] array, int row, int col){
    int [] temprow = new int [array[0].length];
    int [] tempcol = new int [array.length];
    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < array[0].length; j++) {
            if(i == row){
                temprow = array[i]; // TEMP ROW
            }
        }
    }

    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < array[0].length; j++) {
            if(j == col){
                tempcol[i] = array[i][j];
            }
        }
    }
    for (int i = 0; i < tempcol.length; i++) {
        System.out.print(tempcol[i]); /// COLS
    }

    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < array.length; j++) {
            if(i == row){
                array[i] = tempcol;
            }
        }
    }


    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < array[0].length; j++) {
            if(j == col){
                array[i][j] = temprow[i];
            }
        }
    }

    System.out.println();

    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < array[0].length; j++) {
            System.out.print(array[i][j]+" ");
        }
        System.out.println();
    }
}

}

相关问题