해시 테이블
- 해시 테이블은 데이터를 키와 값의 쌍으로 저장하고 관리하는 구조입니다. 키값을 통해 빠르게 값에 접근이 가능합니다
- 해시 - 데이터를 빠르게 찾기위해, 특정 규칙에 따라 숫자(위치)를 반환하는 것
- 해시를 통해 주소를 보고 원하는 값을 한번에 찾기 가능
- Key, Value가 한쌍으로 저장된다
- 키값을 해쉬함수를 이용해 특정 숫자가 나오면 그것을 주소값 또는 인덱스로 사용해 값을 기억시킴
- 해쉬충돌 - 키값이 함수로 변환 되었을 때 같은 수가 나와서 충돌이 발생하는 것
- 충돌 해결법 - 체이닝 : 같은 칸에 여러개를 리스트같은 자료구조로 묶어버린다, 개방주소법 : 충돌난 칸 바로 옆 빈칸에 찾아서 넣는 방식
- 해시 테이블은 오브젝트형이라 잘 안쓰임!
딕셔너리
- 작동 방식은 해시테이블과 거의 같음
- 다만 해시테이블은 오브젝트형을 사용해 다시 꺼내 쓸때 변환을 해줘야함
- 딕셔너리는 제네릭을 이용해 필요한 자료형만 사용할 수 있음
주요 메서드
| 메서드 | 설 |
| Add(TKey key, TValue value) | 지정된 키와 값을 딕셔너리에 추가합니다. 만약 이미 해당 키가 존재하면 예외(ArgumentException)를 발생시킵니다 |
| ContainsKey(TKey key) | 딕셔너리에 특정 키가 포함되어 있는지 여부를 bool 값으로 반환합니다. |
| TryGetValue(TKey key, out TValue value) | 지정된 키와 연결된 값을 가져오려고 시도합니다. 키가 존재하면 true를 반환하고 값을 out 매개변수에 할당하며, 키가 없으면 false를 반환하고 out 매개변수에 기본값(default value)을 할당합니다. |
| Remove(TKey key) | 지정된 키가 있는 요소를 딕셔너리에서 제거합니다. 성공적으로 제거하면 true를 반환하고, 키가 없으면 false를 반환합니다. |
| Clear() | 딕셔너리에서 모든 키와 값을 제거합니다. |
'C# > 자료구조를 활용한 데이터 관리' 카테고리의 다른 글
| 그래프 와 트리 (0) | 2025.11.03 |
|---|---|
| 스택과 큐 (0) | 2025.11.03 |
| 리스트와 링크드 리스트 (0) | 2025.10.14 |
| 자료구조 (0) | 2025.10.14 |