Java 2D数组操作 - 移动与行关联的列

时间:2017-06-27 16:19:03

标签: java arrays multidimensional-array

我有一个2D数组,如下所示:

   0  1  2  3  4
0 [4, 5, 6, 7, 9]
1 [9, 2, 1, 6, 4]
2 [0, 0, 0, 0, 0]
3 [8, 7, 6, 4, 1]
4 [0, 0, 0, 0, 0]

我想更改行的顺序,然后更改列,使它们与原始顺序匹配,即(1,1)将保持为2.因此,当我交换行时,我得到:

   0  1  2  3  4
2 [0, 0, 0, 0, 0]
4 [0, 0, 0, 0, 0]
0 [4, 5, 6, 7, 9]
1 [9, 2, 1, 6, 4] 
3 [8, 7, 6, 4, 1]

我可以在代码中执行此操作。但我无法解决的问题是如何根据开关更改列。所以最后我想:

   2  4  0  1  3
2 [0, 0, 0, 0, 0]
4 [0, 0, 0, 0, 0]
0 [6, 9, 4, 5, 7]
1 [1, 4, 9, 2, 6] 
3 [6, 1, 8, 7, 4]

原始行 - >列索引映射仍然存在。谁能给我一些关于如何处理这个问题的提示?

2 个答案:

答案 0 :(得分:1)

这是我对某些伪代码的建议,它可以解决你的问题:

  • 首先创建一个具有相同尺寸的新数组,而不删除 旧的。
  • 接下来随机化您的行的顺序。
  • 接下来随机化您的列。
  • 然后使用原始表格和新地点 您的新行和列顺序可以完全重新填充表格 根据原始坐标。

永远不要删除旧表,    你可以很容易地引用它来重新填充新的    表

答案 1 :(得分:0)

请记住,2D数组只是一个数组数组。你所谓的列实际上并不是结构的一部分,而是每个数组中的相同位置。要切换列,您需要在每个阵列中切换相同的位置。