- key 와 Value를 사용해서 자료를 저장하는 자료구조.
ㄴ 빠르게 데이터를 검색할 수 있다.
- key 값을 Hash 함수에 넣어 코드 값으로 변경한 후 Bucket(배열) 이라는 저장 공간에
인덱스 번호를 맵핑 시켜서 데이터를 저장한다.
- 해시테이블은 각각의 key 값에 해시 함수를 적용해 배열의 고유한 Index를 생성하고,
이 Index를 활용하여 값을 저장하거나 검색을 하는곳에 사용이 된다.
여기서 실제 값이 저장되는 장소를 버킷 또는 슬롯이라고 한다.
- 제네릭을 사용하지 않는다.
- key와 Value 모두 Object를 입력 받는다.
- 박싱과 언박싱을 사용한다.
- 위에서 유추가 가능하지만 해시테이블은 자료형을 명시하지 않아도 된다.
※ 장점 : 제네릭을 이용하지 않고 Objcet를 입력받기 떄문에 모든 데이터 타입을 처리할수 있다.
※ 단점 : 내부적으로 입력과 출력에 박싱과 언박싱이 발생한다.
var oHashTable = new Hashtable();
for (int i = 0; i< 5; ++i)
{
oHashTable.Add(i.ToString(), i + 1);
}
var oHashTableEnumerator = oHashTable.GetEnumerator();
while(oHashTableEnumerator.MoveNext())
{
string oKey = string.Format("Key_{0}", oHashTableEnumerator.Key);
string oValue = string.Format("Value_{0}", oHashTableEnumerator.Value);
// 정렬이 되지 않고 맘대로 들어간다.
Debug.LogFormat("{0}, {1}", oKey, oValue);
}