C#의 자료구조 클래스 = Collections

Generic / Non-Generic

Generic : 여러 자료형에 맞게 사용할 수 있도록 데이터 요소 타입을 확정하지 않고 데이터 타입을 T로 받아들이게 정의한 것

.net 2.0이하에서는 Non-Generic Collections를 썼는데, 속도와 타입안정성의 문제가 생김 Object로 저장하기 때문에 데이터를 저장,추출할 때 형변환이 무조건 필요해서 오류 발생 가능성이 높아짐

Generic → 선언할 때 어떤 자료형인지 알려줌 → 그 자료형으로 데이터 저장 + 추출

Non-Generic → 선언할 때 안알려줌 → 박싱/언박싱이 일어남 Object로 변환해서 데이터 저장 + 추출 [ 형변환 계속 일어남 + 오류 가능성 ↗️ ]

박싱/언박싱 : 값을 Object로 변환 / Object를 값으로 변환 → 많은 시간을 소모

박싱 : 보통 암시적으로 되고, 명시적으로도 가능

언박싱 : Object에서 가져온 값이 박싱한 값인지 확인 → 이 값을 값 형식 변수에 복사

Untitled

Generic Non-Generic
키/값 쌍 저장 Dictionary<TKey, TValue> Hashtable
인덱스로 항목 접근 Lits<T> Array, ArrayList
선입선출 Queue<T> Queue
후입선출 Stack<T> Stack
순서대로 항목 접근 LinkedList<T> LinkedList
정렬된 컬렉션 SortedList<T> SotredList

<aside> 📌 스레드 안전 컬렉션


Dictionary / Hashtable

Untitled