Dictionary

Dictionary의 종류

Dictionary

  • Key와 Value의 Pair를 갖는 자료구조
  • Generic 해시테이블 구조를 사용

SortedDictionary

  • 이진검색트리를 이용
  • 기본적으로 key 값을 기준으로 정렬

Hashtable

  • Non Generic의 해시테이블
  • 동일 Key에 대한 여러 Value 허용

기타 종류

  • ListDictionary
  • OrderedDictionary
  • ConcurrentDictionary

해시테이블(Hashtable) vs. 딕셔너리(Dictionary)

Hashtable Dictionary
* Non-generic
* Key/Value로 Object 받음
* Boxing/Unboxing을 사용
* Value에 일정한 형식이 없고 여러 형태를 저장하는 경우
* Thread Safety
* Generic (특정 key 값과 특정 value 요구)
* Key/Value로 Strong Type 받음
* Boxing/Unboxing 없음
* 고정적으로 하나의 타입만 입력받는 경우 사용
* No Thread Safety
  • 둘 다 중복된 Key를 받지 않고, 중복 Key를 받는 경우에는 에러 발생

Strong Type & Weak Type

// C# in strongly type mode:
int i = 0;

// C# in weakly type mode:
object i = 0;
  • 프로그래밍 언어가 분류되는 중요한 기준 중 하나인 타입 시스템 (정확한 기준은 없음)
Type 내용
Strong Type Language * 정확한 규칙에 따라 대부분의 error와 exception을 compile time에 처리
* 변수 할당
* 함수 Return values
* 프로시져의 매개 변수와 함수 호출
Dynamically Typed Language * type checking이 run-time에 일어남
* Strong typed가 될 수 있다
* 값은 type이 정해져 있지만, 변수는 type이 없음
Weakly Typed Language * 더 느슨한 규칙
* 전혀 예상치 못한 error나 undefined behavior, errorable result를 야기

출처

Categories: ,

Updated: