前のセクションの学習を通じて、Java には多次元配列の概念がなく、多次元配列を配列の配列として理解できるだけであることがわかりました。そのため、不規則な配列が導出されます。
たとえば、通常の 4×3 2 次元配列には 12 個の要素がありますが、不規則な 4×3 2 次元配列には必ずしも多くの要素があるとは限りません。たとえば、不規則な配列を静的に初期化します。
intArray[][]={{1,2},{3},{4,5,6},{7,8}};
2 次元以上の配列を高次元配列と呼びます。このとき、上の高次元配列の要素数は 4 ですが、低次元配列の要素数は異なります。最初の配列は 2 つで、2 番目の配列は要素数が異なります。には 1 つの要素があり、3 番目の配列には 3 つの要素があり、4 番目の配列には 2 つの要素があります。これを不規則配列と呼びます。
不規則な配列を動的に初期化するのは少し面倒です。新しい int[4][3] ステートメントを直接使用することはできません。次に例を示します。
intArray[][]=newint[4][];//高次元配列を最初に 4Array[0]=newint[2] に初期化します;//低次元配列を初期化します Array[1]=newint[1] ;Array[ 1 つずつ 2]=newint[3];Array[3]=newint[2];
上記のコードが配列を初期化した後、要素は 12 個ではなく 8 個のみであることがわかります。ここで添え字は [0][2]、[1][1]、[1][2]、および [ 3][2] は存在しません。これらにアクセスしようとすると、範囲外の添字例外がスローされます。
注: 存在しない添字にアクセスしようとすると、添字境界外例外 (ArrayIndexOutOfBoundsException) がスローされます。たとえば、1 次元配列 Array に 12 個の要素があるとすると、式 Array[12] によって添字範囲外例外が発生します。これは、配列の添字が 0 から始まり、最後の要素の添字が 0 である必要があるためです。配列の長さから配列の長さ 1 を引いた値になるため、Array[12] によってアクセスされる要素は存在しません。