C# ArrayList의 Capacity 속성이란?
C#의 ArrayList 클래스에서 Capacity 속성은 해당 ArrayList가 저장할 수 있는 요소(element)의 최대 개수를 가져오거나 설정하는 데 사용됩니다.
Capacity 속성에 접근하는 방법은 다음과 같습니다.
arrList.Capacity
Capacity와 Count의 관계
Capacity는 항상 실제로 저장된 요소의 개수를 나타내는 Count보다 크거나 같습니다. 즉, 아직 요소가 추가되지 않은 여유 공간이 항상 확보되어 있는 구조입니다.
ArrayList의 기본 용량(default capacity)은 4입니다. 만약 요소가 5개 추가되어 기본 용량을 초과하면, ArrayList는 내부 배열의 크기를 자동으로 두 배인 8로 늘립니다. 이후에도 용량을 초과할 때마다 같은 방식으로 용량이 계속 배수로 확장됩니다.
예제 코드
아래 예제 코드를 실행하면 Capacity 속성의 동작 방식을 직접 확인할 수 있습니다. 요소가 3개인 경우와 5개인 경우의 용량 차이를 비교해 보세요.
using System;
using System.Collections;
class Demo {
public static void Main() {
ArrayList arrList = new ArrayList();
arrList.Add(19);
arrList.Add(44);
arrList.Add(22);
ArrayList arrList2 = new ArrayList();
arrList2.Add(19);
arrList2.Add(44);
arrList2.Add(64);
arrList2.Add(32);
arrList2.Add(99);
Console.WriteLine("ArrayList1 - Total elements: " + arrList.Count);
Console.WriteLine("ArrayList1 - Capacity: " + arrList.Capacity);
Console.WriteLine("ArrayList2 - Total elements: " + arrList2.Count);
Console.WriteLine("ArrayList2 - Capacity: " + arrList2.Capacity);
}
}실행 결과
ArrayList1 - Total elements: 3 ArrayList1 - Capacity: 4 ArrayList2 - Total elements: 5 ArrayList2 - Capacity: 8
결과 해석
첫 번째 ArrayList는 요소가 3개뿐이므로 기본 용량인 4를 유지하지만, 두 번째 ArrayList는 요소가 5개로 기본 용량을 초과했기 때문에 용량이 자동으로 두 배인 8로 확장된 것을 확인할 수 있습니다.