들쭉날쭉한 배열(Jagged Array)은 말 그대로 '배열의 배열'을 의미합니다. 일반적인 2차원 배열과 달리 각 행(내부 배열)의 길이가 서로 달라도 되기 때문에, 크기가 제각각인 데이터를 효율적으로 다룰 때 매우 유용합니다.
들쭉날쭉한 배열 선언하기
int 타입의 들쭉날쭉한 배열 marks는 다음과 같이 선언할 수 있습니다.
int [][] marks;
들쭉날쭉한 배열 초기화하기
선언된 배열은 아래와 같이 한 번에 초기화할 수 있습니다.
int[][] marks = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};위 코드에서 marks는 두 개의 정수 배열을 요소로 가지는 배열입니다.
- marks[0]은 정수 3개로 이루어진 배열입니다.
- marks[1]은 정수 4개로 이루어진 배열입니다.
또한 각 행을 개별적으로 초기화하는 것도 가능합니다.
int[][] marks = new int[2][];
marks[0] = new int[] {92, 93, 94};
marks[1] = new int[] {85, 66, 87, 88};전체 예제
다음 예제는 세 개의 정수 배열로 구성된 들쭉날쭉한 배열을 생성하고, 중첩 반복문을 사용해 모든 요소의 값을 출력하는 방법을 보여줍니다.
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
/* 정수 배열 3개로 구성된 들쭉날쭉한 배열 */
int[][] a = new int[][]{new int[]{0,0},new int[]{1,2},new int[]{2,4} };
int i, j;
/* 각 배열 요소의 값 출력 */
for (i = 0; i < 3; i++) {
for (j = 0; j < 2; j++) {
Console.WriteLine("a[{0}][{1}] = {2}", i, j, a[i][j]);
}
}
Console.ReadKey();
}
}
}실행 결과
a[0][0] = 0 a[0][1] = 0 a[1][0] = 1 a[1][1] = 2 a[2][0] = 2 a[2][1] = 4
이처럼 들쭉날쭉한 배열은 각 행의 크기를 자유롭게 설정할 수 있어 메모리를 절약하면서도 유연한 데이터 구조를 설계할 수 있다는 장점이 있습니다.