번역/C# Notes for Professionals
27.1: HashSet<T>
노초코
2021. 8. 12. 22:48
Section 27.1: HashSet<T>
HashSet
은 각각의 유일한 요소들만이 저장되어 있는 컬렉션으로, 요소 검색시 O(1) 시간 복잡도를 갖는다.
HashSet<int> validStoryPointValues = new HashSet<int>() { 1, 2, 3, 5, 8, 13, 21 };
bool containsEight = validStoryPointValues.Contains(8); // O(1)
비교를 위해 List
의 Contains
를 수행하는 경우를 생각해 보면, 이는 훨씬 뒤떨어지는 성능을 보여준다:
List<int> validStoryPointValues = new List<int>() { 1, 2, 3, 5, 8, 13, 21 };
bool containsEight = validStoryPointValues.Contains(8); // O(n)
HashSet.Contains
는 해시테이블을 사용하므로, 해당 컬렉션이 가지고 있는 요소들의 수에 관계 없이 언제나 매우 빠른 검색 속도를 보여 준다.
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형