Programing/C#
C# 프로그래밍의 기초: SortedDictionary
유니얼
2024. 8. 24. 16:17
728x90
SortedDictionary<TKey, TValue>는 C#의 Dictionary와 유사하지만, 자동으로 키를 기준으로 정렬하는 특성을 가진 컬렉션입니다. 이 블로그 포스트에서는 SortedDictionary의 특징, 사용 방법, 그리고 어떤 상황에서 사용하는 것이 적합한지 살펴보겠습니다.
SortedDictionary의 주요 특징
- 자동 정렬: SortedDictionary는 키에 따라 자동으로 정렬되며, 키는 기본적으로 오름차순으로 정렬됩니다. 키 중복은 허용되지 않으며, 새로운 키-값 쌍을 추가하면 즉시 올바른 위치에 삽입됩니다.
- 키-값 쌍 구조: 각 데이터는 키와 값의 쌍으로 저장되며, 키를 통해 빠르게 데이터에 접근할 수 있습니다. 이 구조는 빠른 검색, 삽입 및 삭제 작업을 지원합니다.
- 효율적인 데이터 관리: SortedDictionary는 트리 구조를 사용하여 데이터를 관리합니다. 이는 대규모 데이터 집합에서 삽입, 삭제, 검색 작업을 효율적으로 수행할 수 있도록 합니다.
주요 메서드 및 사용 방법
- Add(TKey key, TValue value): 새로운 키-값 쌍을 추가합니다. 키가 이미 존재하면 예외가 발생합니다.
- Remove(TKey key): 지정된 키에 해당하는 요소를 제거합니다.
- ContainsKey(TKey key): 딕셔너리에 특정 키가 존재하는지 확인합니다.
- TryGetValue(TKey key, out TValue value): 키에 해당하는 값을 안전하게 검색하고, 성공 여부를 반환합니다.
- Keys, Values: 딕셔너리의 모든 키 또는 값에 접근할 수 있는 컬렉션을 제공합니다.
- Count: 딕셔너리에 저장된 요소의 수를 반환합니다.
전체예제 코드
using System;
using System.Collections.Generic;
namespace CSharp_ProgramingStudy.Chapter6_DataStructure
{
public class Class10
{
public void Run()
{
// SortedDictionary 생성
SortedDictionary<int, string> sortedDict = new SortedDictionary<int, string>();
// 키-값 쌍 추가
sortedDict.Add(2, "Two");
sortedDict.Add(1, "One");
sortedDict.Add(3, "Three");
// 자동으로 정렬된 키-값 쌍 출력
Console.WriteLine("SortedDictionary elements:");
foreach (KeyValuePair<int, string> kvp in sortedDict)
{
Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
// 출력 순서: Key: 1, Value: One
// Key: 2, Value: Two
// Key: 3, Value: Three
}
// 특정 키를 사용하여 값에 접근
if (sortedDict.TryGetValue(2, out string value))
{
Console.WriteLine($"Value for key 2: {value}"); // 출력: Value for key 2: Two
}
// 키를 사용하여 요소 제거
sortedDict.Remove(3);
// 요소 제거 후 SortedDictionary 출력
Console.WriteLine("After removing key 3:");
foreach (KeyValuePair<int, string> kvp in sortedDict)
{
Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
// 출력 순서: Key: 1, Value: One
// Key: 2, Value: Two
}
// 특정 키가 포함되어 있는지 확인
Console.WriteLine($"Contains key 3: {sortedDict.ContainsKey(3)}"); // 출력: Contains key 3: False
}
}
}
결론
SortedDictionary<TKey, TValue>는 자동으로 정렬되는 데이터 컬렉션을 필요로 하는 애플리케이션에 이상적입니다. 특히, 정렬된 데이터를 유지하면서 키에 기반한 빠른 접근이 필요한 경우 유용하게 사용할 수 있습니다. 하지만 삽입 및 삭제 작업의 비용이 SortedList에 비해 높을 수 있으므로, 성능 요구 사항과 데이터 크기를 고려하여 적합한 컬렉션 타입을 선택하는 것이 중요합니다.
반응형