首页 > 解决方案 > 如何切换二维数组中的两列?

问题描述

我正在用 Java 编写数独代码。

我已经写了一个代码,但不是列,而是行被切换!

int[] tempField = array2D[myFirstCol_toSwitch];
array2D[myFirstCol_toSwitch] = array2D[mySecondCol_toSwitch];
array2D[mySecondCol_toSwitch] = tempField;

为了生成数独板,我需要随机交换列。

标签: javaarraysmultidimensional-array

解决方案


列的条目分布在所有行中,每行一个项目。因此,为了交换两列,您必须遍历所有行并交换每行中的适当项目,如下所示:

// ints c1 and c2 are the indices of the columns to be swapped
for (int[] row : array2d){
{
    int t = row[c1];
    row[c1] = row[c2];
    row[c2] = t;
}

推荐阅读