본문 바로가기

Programming/C#

C# 컬렉션 알아보기 - Hashtable & 메서드

반응형

이전 글에서 C# 컬렉션 중 Stack에 대해 알아보았습니다. 이번에는 Hashtable에 대해 알아보면서 아울러 메서드에는 어떤 것들이 있으며 사용하는 방법에 대해서도 알아보겠습니다.

 

C# 컬렉션 알아보기 - Stack & 메서드

 

C# 컬렉션 알아보기 - Stack & 메서드

이전 글에서 Queue에 대해 알아보았습니다. 이번에는 C# 컬렉션 중 Stack에 대해 알아보겠습니다. Stack은 Queue와 같이 데이터를 저장할 수 있는 컬렉션이지만 입출력되는 방식은 Queue와 전혀 다릅니

mr-johndoe.tistory.com

 

 

 

 

1. Hashtable

 Hashtable은 키가 되는 데이터와 연결된 데이터를 저장하고 있는 컬렉션으로 키를 입력하면 연결된 데이터를 바로 찾을 수 있습니다. 찾는 속도가 인덱스 번호로 찾는 배열만큼이나 빠릅니다.

 

Hashtable 사용방법은 앞의 컬렉션을 선언하는 방법과 동일합니다.

 

  Hashtable 이름 = new Hashtable( );

 

Hashtable은 사전을 생각하시면 이해가 쉬우실 것입니다. 영한사전을 생각해보시면 영어 단어를 찾으면 그 뜻을 한글로 알 수 있습니다. 여기서 영어 단어가 Hashtable의 키가 되고 한글로 된 단어의 뜻이 결과물이 됩니다.

 

2. Hashtable의 메서드

 2.1 Add

     Add 메서드는 데이터를 입력할 때 사용합니다. Hashtable의 Add 메서드는 입력할 때 키가 되는 데이터와 결과 데이터를 함께 입력해야 합니다.

 

        Hashtable.Add(키가 되는 데이터, 결과 데이터);

 

 2.2 Remove

     Remove 메서드는 Hashtable에 저장되어 있는 데이터를 삭제할 때 사용합니다. 인수로는 키가 되는 데이터를 입력하며 입력된 키가 되는 데이터와 연결된 결과 데이터 모두 삭제됩니다.

 

        Hashtable.Remove(키가 되는 데이터);

 

 2.3 Contains

     Contains 메서드는 입력한 데이터가 Hashtable 내에 저장된 키가 되는 데이터에 있는지 확인하여 주는 메서드입니다.

 

        Hashtable.Contains(데이터);

 

 

 

 

3. 예제를 통해 Hashtable 확인

Visual Studio를 열고 C# 콘솔애플리케이션을 생성하시고 화면에 출력된 코드 창에 다음 코드를 입력하세요.

 

   using System;

   using System.Collections;

 

   namespace UsingHashtable

   {

 

      class Program

      {

 

        static void Main(string[] args)

        {

           string s;

 

           Hashtable hash = new Hashtable();

 

           hash.Add("one", "하나");

           hash.Add("two", "둘");

           hash.Add("three", "셋");

           hash.Add("four", "넷");

           hash.Add("five", "다섯");

 

           hash.Remove("four");

 

           Console.Write("단어를 입력하세요 : ");

           s = Console.ReadLine();

 

           if (hash.Contains(s))

              Console.WriteLine("{0} : {1}", s, hash[s]);

           else

              Console.WriteLine("찾으시는 단어가 없습니다.");

           }

 

      }

 

   }

 

Hashtable을 사용하기 위해 using System.Collections;을 입력하였습니다.

 

Hashtable hash = new Hashtable();

     => Hashtable을 Hash라는 이름으로 선언하였습니다.

 

hash.Add("one", "하나");

hash.Add("two", "둘");

hash.Add("three", "셋");

hash.Add("four", "넷");

hash.Add("five", "다섯");

     => Hash에 5개의 키와 결과 데이터를 입력하였습니다.

 

hash.Remove("four");

     => Hash에 입력되어 있는 키 데이터가 four인 데이터와 연결된 결과 데이터 을 삭제합니다.

 

s = Console.ReadLine();

     => 화면에 사용자가 입력하는 데이터를 변수 s에 입력합니다.

 

if (hash.Contains(s))

   Console.WriteLine("{0} : {1}", s, hash[s]);

else

   Console.WriteLine("찾으시는 단어가 없습니다.");

     => 변수 s에 입력된 데이터와 동일한 키 데이터가 hash에 있는지 확인하고 있으면 키 데이터와 결과 데이터 모두 화면에 출력하고, 그렇지 않으면 찾으시는 단어가 없습니다.라고 출력됩니다.

 

코드를 실행시키시고 키 데이터를 입력하시면 연결된 결과 데이터가 출력됩니다. 그리고, Remove 메서드로 삭제한 four를 입력하시면 찾으시는 단어가 없습니다.라고 출력됩니다.

 

반응형