-
C# 프로그래밍의 기초: SortedDictionary2024년 08월 24일
- 유니얼
-
작성자
-
2024.08.24.:17
728x90SortedDictionary<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에 비해 높을 수 있으므로, 성능 요구 사항과 데이터 크기를 고려하여 적합한 컬렉션 타입을 선택하는 것이 중요합니다.
반응형다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드
받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이
감지되어도 모달 창이 표시되지 않습니다.)