我想用数组和Arrays.fill方法创建一个随机的5x5矩阵。 这是我做过什么:如何用数组创建一个随机矩阵
import java.util.*;
class RandomMatrix {
public static void main (String [] args) {
int i,j;
int [] [] matrix = new int [5] [5];
Arrays.fill (matrix, (int) Math.random()*10);
for (i=0; i<matrix.length; i++) {
for (j=0; j<matrix[i].length; j++) {
System.out.printf("%-5d", matrix [i][j]);
}
System.out.println();
}
}
}
实际上我认为它会以这种方式工作,但现在我得到这个错误:
Exception in thread "main" java.lang.ArrayStoreException: java.lang.Integer
at java.util.Arrays.fill(Unknown Source)
at RandomMatrix.main(RandomMatrix.java:8)
你意识到你没有创造25个随机选择的元素5x5矩阵,但5x5矩阵,其中所有元素都是平等(但,随机选择)? –
2D数组是数组的数组。所以你必须用'int []'而不是'int'填充'matrix'(这是一个int []')的数组。因此'ArrayStoreException'。 – Gendarme
Math.random()>以正号返回一个double值,大于或等于0.0且小于1.0。如果当你转换为整数时0 <= 0.5,那么它等于0,0 * 10 = 0无效的数组赋值尺寸 – toto