Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 들쭉날쭉한 배열(Jagged Array) 선언부터 활용까지 완벽 정리


들쭉날쭉한 배열(Jagged Array)이란?

C#에서 들쭉날쭉한 배열은 '배열의 배열'을 의미합니다. 일반적인 2차원 배열과 달리 각 행(내부 배열)의 길이가 서로 다를 수 있어서, 크기가 제각각인 데이터를 유연하게 저장하고 관리할 때 유용하게 사용됩니다.

int 타입의 들쭉날쭉한 배열 points는 다음과 같이 선언할 수 있습니다.

int[][] points;

초기화 방법

선언한 배열은 아래와 같이 중괄호를 이용해 한 번에 초기화할 수 있습니다.

int[][] points = new int[][]{new int[]{10,5},new int[]{30,40}, new int[]{70,80},new int[]{60,70}};

또는 각 내부 배열의 크기를 먼저 지정한 뒤, 나중에 값을 할당하는 방식도 가능합니다.

int[][] points = new int[4][];
points[0] = new int[] {10, 5};
points[1] = new int[] {30, 40};
points[2] = new int[] {70, 80};
points[3] = new int[] {60, 70};

요소 접근하기

들쭉날쭉한 배열의 특정 요소에 접근하려면 두 개의 인덱스를 사용합니다. 첫 번째 인덱스는 외부 배열(행), 두 번째 인덱스는 내부 배열(열)을 가리킵니다.

points[i][j]

전체 예제

다음은 C#에서 들쭉날쭉한 배열을 선언하고 반복문으로 모든 요소를 출력하는 완전한 예제입니다.

using System;

namespace Demo {
    class Program {
        static void Main(string[] args) {

            int[][] pages = new int[][]{new int[]{400,345},new int[]{320,444}, new int[]{900,430},new int[]{890,340}};
            int i, j;

            for (i = 0; i < 3; i++) {
                for (j = 0; j < 2; j++) {
                    Console.WriteLine("pages[{0}][{1}] = {2}", i, j, pages[i][j]);
                }
            }
            Console.ReadKey();
        }
    }
}

실행 결과

pages[0][0] = 400
pages[0][1] = 345
pages[1][0] = 320
pages[1][1] = 444
pages[2][0] = 900
pages[2][1] = 430

정리

들쭉날쭉한 배열은 각 행의 길이를 자유롭게 설정할 수 있어 메모리를 효율적으로 사용할 수 있다는 장점이 있습니다. 반면, 고정된 크기의 직사각형 2차원 배열(int[])과 달리 각 내부 배열을 별도로 생성해야 하므로 상황에 맞게 선택해서 사용하는 것이 좋습니다.