티스토리 툴바


Visual Studio/C#2009/01/30 16:24


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 와 차이를 볼수 있으며 키들을 서로 다른 타입으로 정의해서 사용할수 있다.

Posted by Born in Pain