C# 해시테이블(HashTable)

윤재학·2022년 6월 26일

C#

목록 보기
1/8

▶ 해시테이블 (HashTable) :

  • key 와 Value를 사용해서 자료를 저장하는 자료구조.
    ㄴ 빠르게 데이터를 검색할 수 있다.
  • key 값을 Hash 함수에 넣어 코드 값으로 변경한 후 Bucket(배열) 이라는 저장 공간에
    인덱스 번호를 맵핑 시켜서 데이터를 저장한다.
  • 해시테이블은 각각의 key 값에 해시 함수를 적용해 배열의 고유한 Index를 생성하고,
    이 Index를 활용하여 값을 저장하거나 검색을 하는곳에 사용이 된다.
    여기서 실제 값이 저장되는 장소를 버킷 또는 슬롯이라고 한다.

▷ 해시 테이블 특징:

  1. 제네릭을 사용하지 않는다.
  1. key와 Value 모두 Object를 입력 받는다.
  1. 박싱과 언박싱을 사용한다.
  1. 위에서 유추가 가능하지만 해시테이블은 자료형을 명시하지 않아도 된다.

※ 장점 : 제네릭을 이용하지 않고 Objcet를 입력받기 떄문에 모든 데이터 타입을 처리할수 있다.
※ 단점 : 내부적으로 입력과 출력에 박싱과 언박싱이 발생한다.

■ 해시 테이블:

Value에 일정한 형식이 없고 여러 형태를 사용할때 사용

 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);
        }
profile
노력하자 즐겁게 개발할수 있는 환경을 위해

0개의 댓글