1. Arraylist 클래스
- 배열의 크기를 자유 자재로 변화시킬수 있다
- 서로 다른 타입의 원소들을 배열에 넣을수 있다.
ArrayList al = new ArrayList();
al.Add(100);
al.Add("이건 문자열");
foreach (object o in al)
{
Debug.Print(o.ToString());
}
==결과 ==
100
이건 문자열
그러나 중복된 데이터가 대한 Add 될수 있다. 이게 장점이 될수도 단점이 될수도 ..
즉
al.Add(100);
al.Add("이건 문자열");
al.Add(100); <- 또 추가된다는..
object 를 Add 한후에 나중에 검색할때는 foreach와 if 를 사용해서 찾아와야 한다는..
2. Stack 클래스
스택이라는 데이터 구조의 컬렉션은 나중에 들어온 데이터가 먼저 나오는 구조를 말한다.
Stack mStack = new Stack();
mStack.Push(100);
mStack.Push(("이건 문자열");
foreach(object o in mStack)
{
Debug.Print(o.ToString());
}
==결과 ==
스택 테스트
이건 문자열
100
3. Queue 클래스
Stack 과 달리 먼저 넣은 데이터가 먼저 나오는 구조를 말한다 ..
Queue mQ = new Queue();
mQ.Enqueue("큐 테스트");
mQ.Enqueue(100);
mQ.Enqueue("이건 문자열");
foreach (object o in mQ)
{
Debug.Print(o.ToString());
}
=== 결과 ==
큐 테스트
100
이건 문자열
4. SortedList 클래스
SortedList 는 앞에 클래스와 IDictionary 인터페이스를 구현하는데 , 가장 큰 특징은 키와 값을 이용한다는 것이다.
쉽게 이야기 해서 키와 값을 Add하는데 키 값으로 알아서 Sort 가 된다는 것이다..
SortedList sl = new SortedList();
sl.Add("하나", "가");
sl.Add("둘", "나");
sl.Add("셋", "다");
for (int i = 0; i < sl.Count; i++)
{
string result = string.Format("GetKey[{0}] GetByIndex[{1}]", sl.GetKey(i), sl.GetByIndex(i));
Debug.Print(result);
}
== 결과 ==
GetKey[둘] GetByIndex[나]
GetKey[셋] GetByIndex[다]
GetKey[하나] GetByIndex[가]
5. HashTable 클래스
위에 설명한 클래스 들은 데이터를 찾고자 할때 데이터를 인덱스를 증가시켜 가면서 찾아야 하는데 반해
HashTable 클래스는 키와 값을 Add 하여 보다 손쉽게 찾을때 사용한다.
단 입력된 키는 중복되면 안된다..
Hashtable htTest = new Hashtable();
htTest.Add("하나", "가");
htTest.Add("둘", "나");
htTest.Add("셋", "다");
foreach (object o in htTest)
{
Debug.Print(o.ToString());
}
string result = (string)htTest["키:하나"];
Debug.Print("result : " + result);
HashTable은 키를 가지고 정렬을 하지 않는것으로 SortedList 와 차이를 볼수 있으며 키들을 서로 다른 타입으로 정의해서 사용할수 있다.