質問: new int[3][4]; java.util.Arrays.fill(matrix, 3); System.out.println(matrix.toString()); } ``` 結果は次のようになります。 Exception in thread "main" java.lang.ArrayStoreException: java.lang.Integer at java.util.Arrays.fill(Arrays.java:3130) at Main.main(Main.java:7) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 回答お願いします。
回答: fillが受け付けるのは一次元配列なので、配列の配列は受け付けられません。 (二次元配列と間違って書いていましたが、二次元配列は matrix[1,2] のような状態です) メソッド定義をよく見て、要素ごとに初期化してください。 ``` int[][] matrix = new int[3][4]; for(int[] x: matrix){ java.util.Arrays.fill(x, 3); } ``` ただ、いずれにしても、配列にtoStringしても期待する結果は得られない気がします。