컬렉션은 데이터를 효율적으로 저장, 검색, 조작할 수 있는 다양한 기능을 제공한다. 주요한 컬렉션 클래스들은 닷넷 프레임워크의 일부로 제공되며, System.Collections
및 System.Collections.Generic
네임스페이스에 정의되어 있다.
① C#에서 지원하는 자료구조 클래스
② 자료구조 : 데이터를 구조적으로 표현하고, 구현하는 중요한 알고리즘
③ 종류 : Queue, Stack, ArrayList(Array), Hashtable 등
④ object형식을 사용하여서 박싱과 언박싱이 발생. 성능이 떨어지는 이슈가 있다
⑤ 대용량의 데이터를 처리하기 위해서는 적절한 자료구조를 사용해야 하며 그렇지 않은 경우, 엄청난 비용(속도, 메모리 낭비) 등의 손실을 발생하므로 중요도가 높다.
① Generic : 박싱과 언박싱이 발생하지 않음. 성능면에서 훨씬 좋음.
② 데이터를 저장하는 시점에 데이터 타입을 지정(박싱 발생하지 않음)
③ 데이터를 사용하는 시점에 데이터 타입을 지정했으므로 형변환(언박싱) 하지 않아도 됨.
④ 자신이 지정한 타입만 저장할 수 있다. (데이터 타입을 미리 지정해둠)
⑤ List<T>
, Dictionary<TKey, TValue>
, Queue<T>
, Stack<T>
이 제네릭에 해당된다.
① Non-Generic : 박싱과 언박싱 과정에서 부하가 발생함(메모리 낭비와 속도 성능 저하)
② 데이터를 저장하는 시점에 object로 형변환이 됨(박싱)
③ 데이터를 사용하는 시점에 원래의 타입으로 변환 언박싱(unboxing)
④ ArrayList
, HashTable
, Queue
, Stack
이 넌제너릭에 해당한다.