亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在java中復制二維數組的每第二行和每第二列

在java中復制二維數組的每第二行和每第二列

繁花不似錦 2021-11-24 15:06:07
我有一個二維整數數組,我需要使用 java 復制二維數組的每一行和每一列,如下所示(覆蓋現有值,而不是創建新列/行):當前方法     for(int i = 0; i < result.get(z).getWidth()-2; i+=1)    {   for(int j = 0; j < result.get(z).getHeight()-2; j+=1)    {           x[i+1][j] = result.get(z).getRGB(i, j);        x[i][j+1] = result.get(z).getRGB(i, j);        x[i+1][j+1] = result.get(z).getRGB(i, j);    }}
查看完整描述

2 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

if/else 的另一種方法:


private static void duplicateAlternatesWithIfElse(int[][] matrix) {

        for (int row = 0; row < matrix.length; row++) {

            for (int col = 0; col < matrix.length; col++) {

                if ((row - 1) % 2 == 0) {

                    matrix[row][col] = matrix[row - 1][col];

                } else if ((col - 1) % 2 == 0) {

                    matrix[row][col] = matrix[row][col - 1];

                }

            }

        }

    }

使用主函數測試:


public static void main(String[] args) {

        int[][] twoDimArray = { 

                { 10, 17, 200, 255, 0 }, 

                { 0, 199, 100, 30, 45 }, 

                { 250, 23, 177, 180, 79 },

                { 0, 9, 14, 150, 70 }, 

                { 50, 55, 187, 10, 233 } 

        };


        printMatrix(twoDimArray);

        duplicateAlternatesWithIfElse(twoDimArray);

        printMatrix(twoDimArray);


    }

輸出:


  10  17 200 255   0

   0 199 100  30  45

 250  23 177 180  79

   0   9  14 150  70

  50  55 187  10 233


  10  10 200 200   0

  10  10 200 200   0

 250 250 177 177  79

 250 250 177 177  79

  50  50 187 187 233


查看完整回答
反對 回復 2021-11-24
?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

替代方法:


private static void duplicateAlternates(int[][] matrix) {

    for (int row = 0; row < matrix.length; row += 2)

        for (int col = 1; col < matrix.length; col += 2)

            matrix[row][col] = matrix[row][col - 1];

    for (int row = 1; row < matrix.length; row += 2)

        for (int col = 0; col < matrix.length; col++)

            matrix[row][col] = matrix[row - 1][col];

}

測試


public static void main(String[] args) {

    int[][] matrix = { {  10,  17, 200, 255,   0 },

                       {   0, 199, 100,  30,  45 },

                       { 250,  23, 177, 180,  79 },

                       {   0,   9,  14, 150,  70 },

                       {  50,  55, 187,  10, 233 } };

    print(matrix);

    duplicateAlternates(matrix);

    print(matrix);

}

private static void print(int[][] matrix) {

    for (int row = 0; row < matrix.length; row++) {

        for (int col = 0; col < matrix[row].length; col++)

            System.out.printf(" %3d", matrix[row][col]);

        System.out.println();

    }

    System.out.println();

}

輸出


  10  17 200 255   0

   0 199 100  30  45

 250  23 177 180  79

   0   9  14 150  70

  50  55 187  10 233


  10  10 200 200   0

  10  10 200 200   0

 250 250 177 177  79

 250 250 177 177  79

  50  50 187 187 233


查看完整回答
反對 回復 2021-11-24
  • 2 回答
  • 0 關注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號