Collection 객체
C# 2007. 10. 19. 14:38 |System.Collections 네임 스페이스에는 여러가지 방법으로 항목을 추가하거나 구할 수 있는 가변 길이의 배열 객체들이 많이 있다.
ArrayList
ArrayList 객체는 필요할 때마다 항목을 추가할 수 있는 가변 길이의 배열로, ArrayList의 기본적인 메서드를 사용하면 쉽게 배열에 요소를 추가하고, 개별 요소를 변경시킬 수 있다.
ArrayList arl = new ArrayList();
for(int j = 0; j < zLength; j++)
{
arl.Add(z[j]);
}
ArrayList는 배열의 개수를 찾느 데 사용할 수 있는 Count 속성을 갖고 있다. ArrayList를 배열과 같이 취급하여, 0에서 시작하여 Count 속성 값보다 하나 작은 값까지 이동하면서 이들 요소에 접근 할 수 있다.
{
Console.WriteList(arl[j]);
}
또한 foreach 루프 구문을 사용하여 인덱스 변수를 생성하거나, ArrayList의 길이를 알지 못하고도 ArrayList 객체의 멤버에 순차적으로 접근 할 수 있다.
{
Console.WriteList(a);
}
ArrayList에서 가져온 객체는 항상 object 타입이다. 따라서 우리는 그것을 사용하기 전에 반드시 정확한 타입으로 변환해야 한다.
ArrayList 메서드
- Clear : ArrayList 안에 있는 모든 내용을 삭제한다.
- Contains(object) : ArrayList가 해당하는 값을 가지고 있으면 true를 반환한다.
- CopyTo(array) : ArrayList의 모든 내용을 일차원 배열에 복사한다.
- IndexOf(object) : 해당하는 값의 첫번째 인덱스를 반환한다.
- Insert(index, object) : 정해진 인덱스에 요소를 삽입힌다.
- Remove(object) : 목록에서 지정된 객체를 삭제한다.
- RemoveAt(index) : 지정된 위치에서 요소를 삭제한다.
- Sort : ArrayList를 정렬한다.
HashTable
HashTable은 각각의 요소들을 키 값으로 접근할 수 있는 가변 길이의 배열이다. 일반적으로 키 값은 문자열로 지정하지만, 어떤 객체로 지정해도 상관이 없다. 각각의 요소는 중복되는 값이 있어도 상관없지만, 그 키 값은 반드시 유일해야 한다. HashTable은 크고 정렬되지 않은 항목들의 집합에 빠르게 접근하는 데 사용되고, 키와 요소의 값을 역순으로 함으로써 요소가 중복되지 않는 것을 보장하기 위해 사용되기도 한다.
float freddy = 12.3f;
hash.Add("fread", freddy);
float tmp = (float)hash["fread"];
ArrayList 에서와 같이 HashTable에서 구한 갑도 만드시 적절한 타입으로 변환해서 사용해야 한다. 또한, HashTable도 Count 속성을 가지고 있으므로 클래스의 키 또는 값들의 개수를 알아낼 수 있다.
SortedList
SortedList 클래스는 두 개의 내부 배열을 관리하며, 0부터 시작하는 인덱스와 알파벳 키 중 하나를 사용하여 요소를 구할 수 있다.
ShortedList slist = new SortedList();
slist.Add("fred", freddy);
slist.Add("sam", sammy);
float newFred = (float)slist.GetByIndex(0);
float newSam = (float)slist["sam"];