English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
リッジ配列は配列の配列です。リッジ配列は文字列の配列ではなく配列を保存します。例えば、二次元配列は同じ要素の一次元配列の集合ですが、リッジ配列では各配列の要素の数が異なります。
リッジ配列は二つの方括号[][]で初期化されます。最初の括号は配列のサイズを指定し、第二の括号は格納する配列のサイズを指定します。
以下はリッジ配列の宣言例です。
int[][] jArray1 = new int[2]; // に2つの一次元配列を含むことができます int[][,] jArray2 = new int[3][,]; // に3つの二次元配列を含むことができます
上記の例では、jArray1最大で2つの一次元配列を格納できます。jArray2最大で3つの二次元配列を格納できます。配列[、]で二次元配列を指定します。
int[][] jArray = new int[2]; jArray[0] = new int[3]{1, 2, 3}; jArray[1] = new int[4]{4, 5, 6, 7 };
宣言時にリッジ配列を初期化することもできます。以下のようにします。
int[][] jArray = new int[2][]{ new int[3]{1, 2, 3}, new int[4]{4, 5, 6, 7} }; jArray[0][0]; //返却1 jArray[0][1]; //返却2 jArray[0][2]; //返却3 jArray[1][0]; //返却4 jArray[11]; //返却5 jArray[12]; //返却6 jArray[13]; //返却7
リッジ配列には、二つのforループを使用してアクセスできます。以下のようにします。
int[][] jArray = new int[2][]{ new int[3]{1, 2, 3}, new int[4]{4, 5, 6, 7} }; for(int i=0; i<jArray.Length; i++) { for(int j=0; j < (jArray[i]).Length; j++) Console.WriteLine(jArray[i][j]); }
以下のリッジ配列は、二つの括号[、]で指定された二次元配列を保存しています。
int[][,] jArray = new int[2][,]; jArray[0] = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } jArray[1] = new int[2, 2] { { 7, 8 }, { 9, 10 } jArray[0][1, 1]; //返却4 jArray[11, 0]; //返却9 jArray[11, 1]; //返却10
もし、もう一つの括号を追加したら、それは配列の配列です。
int[][][] intJaggedArray = new int[2]}[][] { new int[2][] { new int[3] { 1, 2, 3}, new int[2] { 4, 5} }, new int[1][] { new int[3] { 7, 8, 9} } }; Console.WriteLine(intJaggedArray[0][0][0]); // 1 Console.WriteLine(intJaggedArray[0][11]); // 5 Console.WriteLine(intJaggedArray[1][0][2]); // 9
上記の交差配列の例では、三つの方括号[][][]は配列の配列の配列を示しています。したがって、intJaggedArrayは二つの要素を含んでおり、これは二つの配列を意味します。それぞれの配列には一つの配列(一次元)が含まれています。intJaggedArray[0][0][0]は最初の内部配列の最初の要素を指しています。intJaggedArray[1][0][2]] 指向第二个内部数组的第三个元素。以下はその説明図です。