7.1 컬렉션이란
C#의 라이브러리는 객체저장이라는 측면에서 컬렉션(Collection) 유형을 제공합니다. 이러한 유형들에는 ArrayList, SortedList, Hashtable, Stack, Queue, NameValueCollection 등이 있습니다. 컬렉션 인터페이스를 사용하는 클래스들을 컬렉션류라고 부르고 있습니다. 이 컬렉션류의 특징은 앞에서도 언급했지만 데이터를 보관할 수 있으며 수정, 삭제, 삽입, 검색 등의 기능을 가지고 있습니다. 그리고, 각각의 컬렉션류들은 클래스마다 구현되어지는 알고리즘이 다를 뿐 전부 같은 부류들입니다. 구현되는 알고리즘이란 자료구조의 LinkedList, Hash, Stack, Queue 등과 같은 알고리즘을 의미합니다. 이러한 차이점만 있을 뿐이지 별다른 사용상의 차이점은 없습니다.
▣ 컬렉션류 클래스들의 특징 |
□ 컬렉션류 클래스들은 소형 메모리 데이터베이스의 기능인 수정, 삭제, 검색, 삽입 등의 기능을 함
□ 동적으로 메모리 확장 가능 |
배열과 구분짓는 특징은 메모리의 사이즈를 동적으로 확장할 수 있다는 것입니다. 배열은 첨자로 배열을 생성하고 그리고, 데이터를 할당할 때 정확하게 첨자의 범위 내에서만 사용할 수 있습니다. 만약, 배열의 범위를 벗어난다면 IndexOutOfRangeException을 발생시킵니다. 컬렉션류는 데이터를 삽입을 했을 때 동적으로 메모리를 늘립니다. 이것이 배열과 구분되는 가장 중요한 요소입니다.
컬렉션류의 메서드들은 데이터의 삽입, 삭제, 검색 등 데이터를 메모리 상에서 잠시 보관하고 관리하는 역할을 합니다. 컬렉션류의 인터페이스를 구현하였다면 당연히 데이터를 삽입하는 기능을 구현하였을 것입니다. 그리고, 데이터의 검색과 삭제 또한 구현했을 것입니다. 결론적으로 컬렉션류 인터페이스를 구현하였다면 객체를 저장하고 그리고, 저장된 객체를 핸들하는 작업을 하게 되는 것입니다.
일반적으로 많이 사용하는 ArrayList나 Hashtable과 같은 컬렉션류는 소형 데이터베이스의 기능인 수정, 삭제, 검색, 삽입의 기능을 할 수