English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# 가시수 배열

가시수 배열은 배열의 배열입니다. 가시수 배열은 문자面上的 값을 아니라 배열을 저장합니다. 예를 들어, 이차원 배열은 여러 개의 동일한 요소를 포함하는 일차원 배열이지만, 가시수 배열은 아래 각 배열의 요소의 개수가 다릅니다.

가시수 배열은 두 개의 괄호 [] []로 초기화됩니다. 첫 번째 괄호는 배열의 크기를 지정하며, 두 번째 괄호는 저장할 예상되는 배열의 크기를 지정합니다.

아래 예제는 가시수 배열을 선언합니다.

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][. 아래 그림은 이를 설명합니다.

사이드 테이프 배열