如何创建一个多维数组生成器?

时间:2016-09-02 02:36:11

标签: java

我试图生成一个多维数组,该数组对生成的随机整数起作用。我无法这样做,因为它无法正常工作。

public class Gen(){
    public static void main(String[] args){

        int randomRow, randomCol;

        int[][] array1 = new int[61][50];

        for(int row = 0; row < array1.length; row++){
            for(int col = 0; col < array1.length; col++){
                randomRow = 1 + (int)(Math.random() * 100);
                randomCol = 1 + (int)(Math.random() * 100);
                array1[row][col] = array1[randomRow][randomCol];
                System.out.println(array1[row][col] + "/n");
            }
        } 
    }
}

但这不起作用。有什么理由吗?

2 个答案:

答案 0 :(得分:2)

认为你要做的是将0到99之间的随机数放在一个数组中。那是对的吗?如果是这样的话:

Random random = new Random();
for (int i = 0; i < array.length; i++)
    for (int j = 0; j < array[i].length; j++)
        array[i][j] = 1 + random.nextInt(100);

请注意,如果您使用的是Java 8,那么生成随机整数数组的技巧比为每个位置分配随机值更简单:

array[] = random.ints(60, 1, 101).toArray();

答案 1 :(得分:1)

更改为

for(int col = 0; col < array1[0].length; col++){

<强> BUT

这不安全

array1[row][col] = array1[randomRow][randomCol];

randomRow可能高达100,但阵列只有61

randomCol的类似问题

但是你真的想做什么。这个数组中的值都是0,所以将一个索引的值重新分配给另一个索引,以便实现任何目标。

修改

基于以下评论,您似乎想要用随机数填充您的数组然后可以通过@sprinters回答来实现

Random random = new Random();
for (int i = 0; i < array.length; i++)
    for (int j = 0; j < array[0].length; j++)
        array[i][j] = 1 + random.nextInt(100);