728x90
SortedDictionary<TKey, TValue>
- .NET에서 제공하는 제네릭 컬렉션 클래스 중 하나로, 키와 값의 쌍을 저장하고 키를 기준으로 자동으로 정렬하는 사전(Dictionary)이다.
- 이 클래스는 System.Collections.Generic 네임스페이스에 포함되어 있으며, 키가 정렬 순서로 저장되어야 하는 시나리오에서 유용하다.
주요 특징
- 키의 정렬
- 키를 기준으로 자동으로 정렬한다. 기본적으로 키는 기본 제공된 비교자(기본적으로 IComparable<TKey> 구현 또는 지정된 IComparer<TKey>)를 사용하여 정렬된다.
- 키와 값의 쌍
- 다른 사전 컬렉션과 마찬가지로 키와 값의 쌍을 저장한다. 각 키는 고유하며, 동일한 키를 두 번 저장할 수 없다.
- 빠른 검색
- 키에 대한 검색, 추가, 삭제가 모두 로그(log) 시간 내에 수행된다. 이는 내부적으로 이진 탐색 트리 구조를 사용하기 때문이다.
- 정렬된 열거
- 컬렉션을 열거할 때 키의 정렬된 순서대로 열거하게 된다.
주요 메서드 및 속성
- Add(TKey key, TValue value)
- 지정한 키와 값 쌍을 사전에 추가한다.
- Remove(TKey key)
- 지정한 키를 가진 항목을 제거한다.
- TryGetValue(TKey key, out TValue value)
- 지정한 키가 있는 경우 값을 가져온다.
- ContainsKey(TKey key)
- 지정한 키가 있는지 확인한다.
- ContainsValue(TValue value)
- 지정한 값이 있는지 확인한다.
- Clear()
- 모든 항목을 제거한다.
- Count
- 사전에 있는 키-값 쌍의 수를 가져온다
- Keys
- 정렬된 키의 컬렉션을 가져온다.
- Values
- 정렬된 값의 컬렉션을 가져온다.
사용 시 고려 사항
- 성능
- SortedDictionary는 검색, 추가 및 삭제 작업에 대해 O(log n)의 시간 복잡도를 갖는다.
- 이는 키의 순서가 중요하고, 삽입/삭제가 빈번하지 않은 경우에 적합하다.
- 메모리 사용량
- 내부적으로 이전 탐색 트리를 사용하기 때문에 일반적인 Dictionary<TKey, TValue> 보다 약간 더 많은 메모리를 사용할 수 있다
- 정렬 기준
- 기본적으로 키의 기본 비교자(키가 IComparable를 구현하는 경우)를 사용하여 정렬된다.
- 사용 지정 비교자를 사용하려면 SortedDictionary 생성자에 IComparaer<TKey>를 제공할 수 있다.
728x90
'언어 > C#' 카테고리의 다른 글
System.Data.SqlClient.SqlException (0x80131904) (0) | 2024.08.08 |
---|---|
System.Data.SqlClient.SqlConnection.OnError (0) | 2024.08.08 |
yield return (0) | 2024.08.07 |
델리게이트(Delegate) (0) | 2024.08.07 |
ConcurrentDictionary.AddOrUpdate(value1, value2, (k,v) ⇒ value2) 메서드 (0) | 2024.08.06 |