유니티 Dictionary, HashTable, HastSet 간단 설명

# Dictionary란?

var dictionary = new Dictionary<string, string>();
dictionary.Add("Name", "KinJinwoo");

var name = dictionary["Name"];
Debug.Log(name);

 

  •  Dictionary<TKey, TValue> 구조로 되어 있습니다
    • 도서관을 예시로 들면, 컴퓨터로 책 제목을 치면 위치를 얻을 수 있습니다
    • 즉, Key와 Value를 사용하여 자료를 저장합니다
  •  중복 <TKey>를 허용하지 않습니다
    • 위 코드를 예시로, dictionary에 Name이라는 Key값을 저장했으므로, 또 다시 Name이라는 Key값을 Add할 수 없습니다!
  •  제네릭<T>으로 TKey와 TValue의 타입을 미리 정할 수 있어 박싱과 언박싱이 발생하지 않습니다
    • 위 코드에는 TKey와 TValue 타입이 string으로 미리 지정되어 있습니다

Dictionary<TKey, TValue> 구조

 


# HashTable이란?

var hashtable = new Hashtable();
hashtable.Add("Age", 24);

var age = hashtable["Age"];
Debug.Log(age);

 

  •  TKey와 TValue를 사용하여 자료를 저장합니다
  •  중복 Key를 허용하지 않습니다
    • 위와 동일
  •  TKey와 TValue 둘 다 Object형식을 사용하므로 언박싱이 일어납니다!
    • Dictionary와의 차이!

# HashSet 이란?

var hashset = new HashSet<int>();
hashset.Add(177);

foreach (var VARIABLE in hashset)
{
    var height = VARIABLE;
    Debug.Log(height);
}
  •  Key가 존재하지 않으며, Value(들)의 구성으로 이루어져 있습니다
  •  순서가 존재하지 않습니다
    • {0, 6, 2, 9} 는 {9, 2, 6, 0} 과 같습니다
  •  각 항목의 중복을 허용하지 않습는다
    • Value 중복을 허용하지 않는다는 이야기 입니다

위 코드들은 단순 정말 정말 개념만 설명했습니다

자료구조에는 Add 방법뿐 아니라 

CotainsKey, TryGetValue, Remove 등이 존재하므로 자료구조 문법에 대해 좀 더 공부해보시기를 추천드립니다!


# 결과

제 신상입니다만..