如何使用java中的值随机填充2d数组中的固定数量的列?

时间:2015-05-01 02:41:44

标签: java arrays random multidimensional-array

罗嗦的问题,让我举个例子

我正在创建的程序使用2D数组创建2D世界,其大小基于用户输入。在这个例子中,世界是一个4×10世界

----------
----------
----------
----------

如何将3 X放在底行的随机位置?

----------
----------
----------
--x-x---x-

但要确保它是随机的,以便在我再次运行该方法时它们不会出现在同一行中?

2 个答案:

答案 0 :(得分:2)

您可以在索引0 , 1 , 2中指定x的位置尝试此操作,并使用Collections框架的shuffle方法对其进行随机播放。

String [][] data = {{"-","-","-","-","-","-","-","-"},{"-","-","-","-","-","-","-","-"}};

   data[data.length - 1][0] = "x";
   data[data.length - 1][1] = "x";
   data[data.length - 1][2] = "x";

   Collections.shuffle(Arrays.asList(data[data.length - 1]));
   for(int i = 0; i < data.length; i++){
       for(String s : data[i]){
           System.out.print(s);
       }
       System.out.println();
   }

结果:

--------
--x-xx--

答案 1 :(得分:1)

    Scanner scanner = new Scanner(System.in);
    Random rgen = new Random();
    int column = scanner.nextInt();
    int row = scanner.nextInt();

    List<List<Character>> grid = new LinkedList<>();

    for (int i = 0; i < column; i++) {
        List<Character> aColumn = new LinkedList<>();
        for (int j = 0; j < row; j++) {
            if (rgen.nextBoolean()) {
                aColumn.add('.');
            } else {
                aColumn.add('x');
            }

        }
        grid.add(aColumn);
    }