java - 如何使用数组创建随机矩阵

标签 java arrays matrix

我想使用数组和 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/

相关文章:

python - 检查矩阵的每一行是否在另一个矩阵中 [Python]

c++ - C++ 和 OpenGL 矩阵顺序之间的混淆(行优先 vs 列优先)

java - 如何删除大字符串数据中的重复字符串?

java - 从对象获取 JavaArray 属性

java - 使用 AES/CBC/NOPADDING 在 Node 中加密并使用相同算法在 JAVA 中解密,会产生一些垃圾,例如 e�J�,�d�|*�5har��

arrays - 将一个数组分成两个 TableView 单元格

c - 我得到方形阵列的意外结果?

java - {c++} Vertex* myList 和 {java} List myList 有何相似之处?

python - 将 numpy ndarray 数组元素展平为特征行

c++ - 删除多维矩阵时出错