【发布时间】:2016-12-01 15:18:48
【问题描述】:
我想使用数组和 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 矩阵?
-
二维数组是数组的数组。所以你必须用
int[]s 填充matrix(int[]的数组),而不是ints。因此ArrayStoreException. -
Math.random() > 返回一个带正号的双精度值,大于等于 0.0 小于 1.0。 if is 0