Java 二维数组的随机数

Java 二维数组的随机数,java,arrays,type-2-dimension,Java,Arrays,Type 2 Dimension,我正在为一个类进行赋值,在这个类中,我首先需要声明包含5行5列的整数数组。然后将数组元素初始化为1到10之间的随机数。输出只是一个3个的长列表,没有其他内容。如果你能为我指出正确的方向,我将不胜感激 我必须将此语句用于随机: int r = (int)(Math.random()*(9-1+1))+1; 到目前为止,这就是我所拥有的,但它不起作用: public static void main(String[] args) { // TODO Auto-generated metho

我正在为一个类进行赋值,在这个类中,我首先需要声明包含5行5列的整数数组。然后将数组元素初始化为1到10之间的随机数。输出只是一个3个的长列表,没有其他内容。如果你能为我指出正确的方向,我将不胜感激

我必须将此语句用于随机:

int r = (int)(Math.random()*(9-1+1))+1;
到目前为止,这就是我所拥有的,但它不起作用:

public static void main(String[] args) {
    // TODO Auto-generated method stub
int[][] table= new int [5][5];
int r = (int)(Math.random()*(9-1+1))+1;

for(int row = 0; row < table.length; row++){
for(int column = 0; column < table[row].length; column++){
    table[row][column]=r;
    System.out.println(table[row][column]);
}
}

}

}
publicstaticvoidmain(字符串[]args){
//TODO自动生成的方法存根
int[]table=新int[5][5];
int r=(int)(Math.random()*(9-1+1))+1;
for(int row=0;row
您需要在for循环内部进行随机化,而不是在for循环之前进行随机化。这样,随机化将在循环的每次迭代中发生

伪代码中的代码逻辑本质上是:

set r to a single random number
loop through the array 
   assign r (which never changes) to each item in the array
end loop
您要做的是:

loop through the array
  create a new random r with each iteration of the loop 
  assign that r to an array element.
end loop

编辑
你问:

我想将输出打印为包含行和列的表


然后需要使用嵌套for循环来完成此操作。使用现有的循环,或者创建一个新的循环,以类似的方式遍历数组。了解
System.out.print(…)
System.out.println(…)
打印内容然后开始新的一行时,将内容打印到屏幕上。您需要找出在何处使用这两种方法。

因为您是在循环之前计算r

int r = (int)(Math.random()*(9-1+1))+1;
你表中的所有数字都将是相同的。 将其移动到循环内部,如下所示:

for(int row = 0; row < table.length; row++){
    for(int column = 0; column < table[row].length; column++){
        int r =(int)(Math.random()*(9-1+1))+1;
        table[row][column]=r;
        System.out.println(table[row][column]);
    }
}
for(int row=0;row
附言
(int)(Math.random()*(9-1+1))+1

可以缩短为


(int)(Math.random()*9)+1

修复了数字,但它仍然只是作为列表打印。这就是它应该如何打印的吗?@user3720722:您将需要指定您想要的输出。你的问题在这个重要的细节上有点贫乏。对不起。我想将输出打印为包含行和列的表。@user3720722:那么您需要使用嵌套for循环来执行此操作。使用现有的循环,或者创建一个新的循环,以类似的方式遍历数组。了解
System.out.print(…)
System.out.println(…)
打印内容然后开始新的一行时,将内容打印到屏幕上。你需要弄清楚在哪里使用这两种方法,所以我对使用嵌套循环有点困惑。我是否要为每一行/每一列设置一个循环,以便打印为表格?你用“9-1+1”实现了什么?最好给他一个想法,然后让他创建代码。否则你就是在欺骗他,让他没有机会创建自己的代码。@HovercraftFullOfEels谢谢你的建议。我对回答有关StackOverflow的问题还不熟悉,所以我会在前进的过程中牢记这一点。