我想用數組和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