配列と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の行列を作成していないことを実現しますが、すべての要素が等しい(まだ、ランダムに選ばれた)されている5×5の行列でしたか? –
2D配列は配列の配列です。だから 'matrix'(' int [] 'の配列)を' int'ではなく 'int []'で埋める必要があります。したがって、 'ArrayStoreException'。 – Gendarme
Math.random()> 0.0より大きく1.0より小さい正の符号を持つdouble値を返します。整数にキャストしたときに0 <= 0.5の場合は0になり、0 * 10 = 0の場合無効配列配列 – toto