我想使用数组和 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)
最佳答案
使用与打印矩阵相同的循环结构。
for (int i=0; i<matrix.length; i++) {
for (int j=0; j<matrix[i].length; j++) {
matrix[i][j] = (int) (Math.random()*10);
}
}
Arrays.fill()
适用于数组,您的矩阵是由数组组成的数组。即使您使用类似 Arrays.fill (matrix[0], (int) Math.random()*10); 的内容,您也会将相同的(随机选择的)值放入行的每个单元格中0.
关于java - 如何使用数组创建随机矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40914250/