[Data Structure] 딕셔너리(Dictionary)
Dictionary 란?
Dictionary 란?
-> 해시맵과 동일하게 키-값 쌍으로 데이터를 저장하는 비선형 자료구조이며, ‘키’를 이용하여 데이터를 빠르게 검색할 수 있습니다.
Hash Map과 동일하게 기본적인 자료구조로서 키를 사용하고 키와 값의 타입에 제한이 없으며 동기화 되지 않는다는 공통점이 있습니다.
다만, Hash Map이 Dictionary보다 빠르고 Dictionary는 C# 8.0 이상 부터 사용 가능하고 Hash Map은 그 이전버전 까지만 사용 가능하다는 점 입니다.
그냥 한마디로 정의하자면, Dictionary는 Hash Map의 후속버전이라 생각하시면 편합니다.
해시맵(Hash Map)과 차이점
- 버전
- Dictionary : C# 8.0 이상 부터 사용 가능
- Hash Map : C# 8.0 이전 까지 사용 가능
- 속도
- Dictionary : Hash Map보다 느림
- Hash Map : Dictionary보다 빠름
사용하는 이유
- 키를 이용하여 데이터를 빠르게 검색할 수 있습니다.
- 데이터의 저장 및 검색이 효율적입니다.
- 데이터의 중복을 허용하지 않습니다.
문제점&주의사항
- 키의 범위가 넓을 경우 해시 충돌이 발생할 수 있습니다.
- 해시 충돌을 해결하기 위해 별도의 자료구조를 사용해야 할 수 있습니다.
예제
using System;
using System.Collections.Generic;
class Dictionary
{
static void Main(string[] args)
{
Dictionary<string, int> _dictionary = new Dictionary<string, int>();
// Dictionary에 데이터를 추가합니다.
_dictionary.Add("pen", 1);
_dictionary.Add("eraser", 2);
_dictionary.Add("sharp pencil", 3);
// Dictionary에서 데이터를 검색합니다.
int value = _dictionary["pen"];
Console.WriteLine(value);
// Dictionary에서 데이터를 삭제합니다.
_dictionary.Remove("pen");
}
}