如何在Java中正确随机洗牌一个二维数组?

是。创建一个表示2D数组的列表,然后使用Collections.shuffle(列表)。

示例

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Tester {
   public static void main(String[] args) {
      List<int[]> rows = new ArrayList<>();
      rows.add(new int[]{1,2,3});
      rows.add(new int[]{4,5,6});
      rows.add(new int[]{7,8,9});
      System.out.println("Before Shuffle");
      System.out.println("[0][0] : " + rows.get(0)[0]);
      System.out.println("[1][1] : " + rows.get(1)[1]);
      System.out.println("After Shuffle");
      Collections.shuffle(rows);
      System.out.println("[0][0] : " + rows.get(0)[0]);
      System.out.println("[1][1] : " + rows.get(1)[1]);
   }
}

输出结果

Before Shuffle
[0][0] : 1
[1][1] : 5
After Shuffle
[0][0] : 7
[1][1] : 2