前提・実現したいこと
行によって列数の異なる凸凹な配列を扱うプログラムを書いています。
以下のように表示させようとしています
{ { 1, 2, 3, 4, 5 }, { 1, 3, 5 }, { 2, 4, 6, 8 } , }
発生している問題・エラーメッセージ
凹凸な2次元配列の定義の仕方で1次元配列の際と同様に色々試してみているのですが、うまくいかずに困っています。
現在のコードでは以下のようなエラーが出ています。
{ [1,2,3,4,Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at ShowElements.main(ShowElements.java:14)
該当のソースコード
java
1public class ShowElements { 2 3 public static void main(String[] args) { 4 int[][] a = { { 1, 2, 3, 4, 5 }, 5 { 1, 3, 5 }, 6 { 2, 4, 6, 8 } 7 }; 8 System.out.println("{"); 9 for (int i = 0; i < a.length; i++) { 10 System.out.print("["); 11 if (a[i].length >= 2) { 12 for (int j = 0; j < a[i].length - 1; j++) { 13 System.out.print(a[i][j] + ","); 14 } 15 if (a[i].length >= 1) { 16 System.out.println(a[i][a[i].length] + "},"); 17 } 18 } 19 20 } 21 System.out.println("}"); 22 } 23 24} 25
試したこと
配列定義の部分を以下のようにしたところ、
「配列定数はイニシャライザーにおいてのみ使用可能 です」
とエラーが出ました。
int[][] a = new int [3][]; a[0] = {1, 2, 3, 4, 5}; a[1] = {1, 3, 5}; a[2] = { 2, 4, 6, 8} ; ### 実行環境 Eclipse Version: Oxygen.3a Release (4.7.3a)
出力の最後の行の{ 2, 4, 6, 8 } , ←カンマは出力したいですか?
回答2件
あなたの回答
tips
プレビュー