일반화 컬렉션 Generic Collections

Gogi·2023년 9월 6일

C# 언어 기초 목록

목록 보기
16/29

타입 안전성을 보장하는 컬렉션

일반화(Generic) 컬렉션(Collections)은 타입 안전성을 보장하는 컬렉션이다. 기본적으로 List<T> LinkedList<T> Dictionary<TKey, TValue> Queue<T> Stack<T> 등이 있다.


기본 개념 및 사용 예시

일반화 컬렉션은 박싱(boxing)과 언박싱(unboxing)을 줄여 성능을 향상시키며, 컴파일 타임에 타입 체크를 하므로 런타임 에러를 줄인다.

1. List<T>

List<T>는 배열과 유사하며, 인덱스를 사용하여 요소에 접근할 수 있다. 동적으로 크기가 변경될 수 있다.

List<int> myList = new List<int> {1, 2, 3};

myList.Add(4); // 리스트에 4 추가

int firstElement = myList[0]; // 1

2. LinkedList<T>

LinkedList<T>는 양방향 링크드 리스트를 구현한 컬렉션이다. 각 노드가 다음 노드와 이전 노드를 가리킨다. 인덱스를 사용한 요소 접근(랜덤 액세스)이 불가능하다.

LinkedList<int> myLinkedList = new LinkedList<int>();

myLinkedList.AddLast(1);
myLinkedList.AddLast(2);
myLinkedList.AddLast(3);

3. Dictionary<TKey, TValue>

키-값 쌍을 저장하는 해시 테이블을 구현한 컬렉션이다. 키는 고유해야 하며, 값은 키를 통해 빠르게 검색될 수 있다.

Dictionary<string, int> myDict = new Dictionary<string, int> 
{ 
	{"apple", 1}, 
    {"banana", 2} 
};
myDict["orange"] = 3;

int appleValue = myDict["apple"]; // 1

4. Queue<T>

FIFO (First In, First Out) 선입선출 구조를 가진 컬렉션이다.

Queue<int> myQueue = new Queue<int>();

myQueue.Enqueue(1);
myQueue.Enqueue(2);

int first = myQueue.Dequeue(); // 1

5. Stack<T>

LIFO (Last In, First Out) 후입선출 구조를 가진 컬렉션이다.

Stack<int> myStack = new Stack<int>();

myStack.Push(1);
myStack.Push(2);

int last = myStack.Pop(); // 2

용어 설명

  • 일반화 (Generic): 타입을 매개변수로 받아 동적으로 타입을 생성할 수 있게 하는 프로그래밍 기법.

  • 타입 안전성 (Type Safety): 컴파일 타임에 타입의 올바른 사용을 검증, 잘못된 타입 사용 시 에러를 발생시킴.

profile
C, C++, C#, Unity

0개의 댓글