English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
가시수 배열은 배열의 배열입니다. 가시수 배열은 문자面上的 값을 아니라 배열을 저장합니다. 예를 들어, 이차원 배열은 여러 개의 동일한 요소를 포함하는 일차원 배열이지만, 가시수 배열은 아래 각 배열의 요소의 개수가 다릅니다.
가시수 배열은 두 개의 괄호 [] []로 초기화됩니다. 첫 번째 괄호는 배열의 크기를 지정하며, 두 번째 괄호는 저장할 예상되는 배열의 크기를 지정합니다.
아래 예제는 가시수 배열을 선언합니다.
int[][] jArray1 = new int[2]; // 두 개의 일차원 배열을 포함할 수 있습니다 int[][,] jArray2 = new int[3][,]; // 세 개의 이차원 배열을 포함할 수 있습니다
위의 예제에서 jArray1최대로 두 개의 일차원 배열을 저장할 수 있습니다. jArray2최대로 세 개의 이차원 배열을 저장할 수 있습니다. 배열 [ ]를 통해 이차원 배열을 지정합니다.
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]{ new3]{1, 2, 3}, new4]{4, 5, 6, 7} }; jArray[0][0]; //반환1 jArray[0][1]; //반환2 jArray[0][2]; //반환3 jArray[1][0]; //반환4 jArray[1][}}1]; //반환5 jArray[1][}}2]; //반환6 jArray[1][}}3]; //반환7
가시수 배열에 두 개의 for문을 사용하여 접근할 수 있습니다. 예를 들어 다음과 같이 합니다.
int[][] jArray = new int[2]{ new3]{1, 2, 3}, new4]{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[1][}}1, 0]; //반환9 jArray[1][}}1, 1]; //반환10
또 다른 괄호를 추가하면 그것은 배열의 배열입니다.
int[][][] intJaggedArray = new int[2]] { new2}][] { new3] { 1, 2, 3}, new2] { 4, 5} }, new1}][] { new3] { 7, 8, 9} } }; Console.WriteLine(intJaggedArray[0][0][0]); // 1 Console.WriteLine(intJaggedArray[0][1][}}1]); // 5 Console.WriteLine(intJaggedArray[1][0][2]); // 9
위의 교차 배열 예제에서 세 개의 괄호[][][]는 배열의 배열의 배열을 나타냅니다. 따라서 intJaggedArray는 두 개의 요소를 포함하며, 이는 두 개의 배열을 의미합니다. 이제 각 배열은 또 하나의 배열(일维)을 포함하고 있습니다. intJaggedArray[0][0][0]은 첫 번째 내부 배열의 첫 번째 요소를 가리킵니다. intJaggedArray[1][0][2][0][. 아래 그림은 이를 설명합니다.