ArrayList는 List 인터페이스를 구현한 크기 조절이 가능한(resizable) 컬렉션입니다. C#에서 제공되는 제네릭이 아닌(non-generic) 컬렉션 타입으로, 요소가 추가되거나 제거될 때 내부적으로 용량이 자동으로 늘어나거나 줄어들어 동적으로 크기가 조정됩니다.
ArrayList는 System.Collections 네임스페이스에 속해 있으며, 서로 다른 자료형의 값을 하나의 컬렉션에 저장할 수 있다는 특징이 있습니다.
ArrayList 초기화 방법
C#에서 ArrayList를 선언하고 초기화하는 방법은 매우 간단합니다. 아래 코드 한 줄이면 빈 ArrayList 객체가 생성됩니다.
ArrayList arr = new ArrayList();
ArrayList에 요소 추가하기
Add() 메서드를 사용하면 컬렉션 끝에 새로운 요소를 추가할 수 있습니다.
ArrayList arr1 = new ArrayList(); arr1.Add(120); arr1.Add(160);
ArrayList 전체 구현 예제
아래는 두 개의 ArrayList를 생성한 뒤, AddRange() 메서드로 하나로 합치고 전체 요소를 출력하는 완전한 예제입니다.
using System;
using System.Collections;
public class MyClass {
public static void Main() {
ArrayList arr1 = new ArrayList();
arr1.Add(120);
arr1.Add(160);
ArrayList arr2 = new ArrayList();
arr2.Add(200);
arr2.Add(240);
// arr1에 arr2의 모든 요소를 추가
arr1.AddRange(arr2);
for (int i = 0; i < arr1.Count; i++)
Console.WriteLine(arr1[i]);
}
}실행 결과
120 160 200 240
주요 포인트 정리
- Add(): 컬렉션의 맨 끝에 단일 요소를 추가합니다.
- AddRange(): 다른 컬렉션이나 배열의 모든 요소를 한 번에 추가합니다.
- Count: ArrayList에 현재 저장된 요소의 개수를 반환합니다.
- 동적 크기 조절: 초기 용량을 초과하면 자동으로 용량이 확장됩니다.
참고 사항
ArrayList는 요소를 object 타입으로 저장하기 때문에 값 타입을 넣을 때 박싱(boxing)과 언박싱(unboxing)이 발생하여 성능 저하가 있을 수 있습니다. 따라서 최신 C# 개발에서는 같은 자료형만 다루는 경우 제네릭 컬렉션인 List<T>를 사용하는 것이 권장됩니다.