java - 切换二维数组的列

标签 java

所以我的问题是我无法像在单个变量数组中那样切换二维数组的元素。它们不是切换元素,而是不断重写......

for (int column = 0; column < m[0].length; column++) {
    shufcol = (int)(Math.random()*4);
    temp = column;
    System.out.println(shufcol);

    for(int row = 0; row < m.length; row++) {
        temp = row;
        m[row][temp]=m[row][column];
        m[row][column]= m[row][shufcol];
        m[row][temp] = m[row][shufcol];
    }
}

输入数组 (3X4) {{0 1 2 3} {1 4 5 6} {0 7 8 9}}

输出数组 {{2 2 3 2} {5 5 6 5} {8 8 9 8}}

如果您对 math.random 感到好奇,那只是生成一个 0 到 3 之间的随机列来进行切换。问题又是为什么它只重写元素而不切换它们?

最佳答案

我不完全明白你最后想要实现什么(因为你没有告诉),但我想,如果你重读这段代码:

temp = row;
m[row][temp]=m[row][column];
m[row][column]= m[row][shufcol];
m[row][temp] = m[row][shufcol];

尝试用纸和笔执行几次,你就会发现错误。

关于java - 切换二维数组的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5451726/

相关文章:

java - Android通过url设置ImageButton背景

java - JAX-WS 表单例份验证

java - 从两个数量为 N 或更多的重叠字符串创建一个字符串?

java - 如何使用 JPA 和 Hibernate 复制 INSERT/UPDATE/DELETE 语句

java - CDI + JPA 存储库

java - GSON 转换为 LinkedHashMap 而不是我的对象

java - 为什么在 java 中解码和编码字符串并不总是对称的?

GridLayout 中的 Java FlowLayout

java - 从 Bat 文件执行 Java 时包含 Jar

java - 如何延迟 ScheduledExecutorService?