java - 如何交替二维数组中每隔一列的元素顺序

标签 java

空的二维数组a应填充以下值:

1 8 9 16 17
2 7 10 15 18
3 6 11 14 19
4 5 12 13 20

我在弄清楚如何反转列的顺序方面遇到了很多麻烦。这是我得到的最接近的结果:

int [][] a = new int[4][5];
        int count = 1;
        for(int c = 0; c < a[0].length; c++) {
            for(int r = 0; r < a.length; r++) {
                a[r][c] = count;
                count++;
            if(r% 2 == 0 && c % 2 != 0) {
                count = 20;
                a[r][c] = 20;
                count--;
           }    
       }
}

最佳答案

您应该定义一个变量来定义每次迭代时要移动的方向,我将其命名为sign。如果sign为正,则该列将向下填充,否则将向相反方向移动。

int [][] a = new int[4][5];
int count = 1;
int sign = 1;
for(int j = 0 ; j < 5 ; j++){
    if(sign==1)
        for(int i = 0 ; i < 4 ; i++){
            a[i][j]=count;
            count++;
        }
    else
        for(int i = 3 ; i >=0 ; i--){
            a[i][j]=count;
            count++;
        }
    sign *= -1;
}

如果我们想打印数组,我们将拥有:

for(int i = 0 ; i < 4; i++){
        for(int j = 0 ; j < 5; j++)
            System.out.print(a[i][j]+"\t");
        System.out.println();
    }

结果输出为:

1   8   9   16  17  
2   7   10  15  18  
3   6   11  14  19  
4   5   12  13  20  

关于java - 如何交替二维数组中每隔一列的元素顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59996900/

相关文章:

java - Selenium Webdriver - 引用非静态 - jexcel 字符串作为静态

java - ssh客户端如何区分文本颜色

java - 正则表达式仅允许数字、字母、空格和连字符 - Java

java - X 射线跟踪未从 ec2 中出现,出现异常

java - 有没有一种简单的方法可以使用 java Graphics 2D 对象淡入字符串字符?

java - 错误 token 异常 : Unable to add window

java - 解析错误 - 线程 "AWT-EventQueue-0"中出现异常

java - 调用 Runtime.exec() 后检测图形界面

java - 需要在 Java 中的参数化构造函数中初始化最终引用

java - OS X 的 Java 执行路径中的空格