SSISO Community

갤러리정

해시테이블(HashTable) 사용하기 - CSharp

using System;
using System.Collections;

public class SamplesHashtable  {

    public static void Main() {

 

        Hashtable myHT = new Hashtable();

 

        //해쉬테이블에 Key, Value 추가
        myHT.Add("First", "Hello");
        myHT.Add("Second", "World");
        myHT.Add("Third", "welcome");
        myHT.Add("Four", "!");

 

        Print("1. myHT 전체목록:", myHT);
        // 결과 : Third:welcome, Second:World, Four:!, First:Hello,   요소의 갯수:4

 

        //특정키 존재여부 : 결과는 True or False
        bool IsContain= myHT.ContainsKey("First");
        Console.WriteLine("2. First 키의 존재여부:" + IsContain);
        // 결과 : True

 

        //해쉬테이블의 Key값만 출력
        Console.Write("3. 키값들만 출력\n\t");
        ICollection mykey = myHT.Keys; 

        foreach(object obj in mykey)
           Console.Write( "{0},", obj);
        // 결과 :  Third,Second,Four,First,

 

       //해쉬테이블의 Value값들만 출력
        Console.WriteLine();
        Console.Write("4. Value들만 출력\n\t");

        ICollection myval = myHT.Values; 
        foreach(object obj in myval)
            Console.Write( "{0},", obj);
        // 결과 : welcome,World,!,Hello,

 

        // 해쉬테이블의 특정값 출력
        Console.WriteLine();
        myHT.Remove("Four");
        //public virtual void Remove(object key);

 

        //해시테이블에서 특정키에 해당하는 Value를 추출하고자 할때는

        //반복문에서 조건문을 이용해야만 가능합니다.

       // Item속성이 있긴하지만 C#에서의 사용법이 정확하지가 않군요...

       // 혹시 아시는 분이 계시다면...^^


        Print("5. 데이터삭제:", myHT);
        // 결과 : Third:welcome, Second:World, First:Hello,   요소의 갯수:3

 

    }

 

    public static void Print( String info, Hashtable myList)
    {
        // Hashtable에서 모든 데이터를 검색할 때는 속성이나 IEnumerator를 이용하는 것 보다
        // IEnumerator와 IDictionary 성질을 동시에 지니고 있는

        // IDictionaryEnumerator 인터페이스를 이용합니다.
        // 이 때 Hashtable의 GetEnumerator() 메서드를 통해서

        // IDictionaryEnumerator 객체를 얻어 냅니다.

 

        IDictionaryEnumerator myEnumerator = myList.GetEnumerator();
        Console.Write(info + "\n\t");

 

        while ( myEnumerator.MoveNext() )
               Console.Write("{0}:{1}, ", myEnumerator.Key, myEnumerator.Value);

        Console.Write("  요소의 갯수:" + myList.Count + "\n");
    }
}


3739 view

4.0 stars