이전 글에서 C# 컬렉션 중 Stack에 대해 알아보았습니다. 이번에는 Hashtable에 대해 알아보면서 아울러 메서드에는 어떤 것들이 있으며 사용하는 방법에 대해서도 알아보겠습니다.
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를 입력하시면 찾으시는 단어가 없습니다.라고 출력됩니다.
'Programming > C#' 카테고리의 다른 글
C# 파일 입출력 - Stream 클래스 (0) | 2021.11.27 |
---|---|
C# 데이터 형식 - Object & 박싱, 언박싱 (0) | 2021.10.18 |
C# 컬렉션 알아보기 - Stack & 메서드 (0) | 2021.10.15 |
C# 컬렉션 알아보기 - Queue & 메서드 (0) | 2021.10.15 |
C# 컬렉션 알아보기 - ArrayList & 메서드 (0) | 2021.10.14 |