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)

비교를 위해 ListContains 를 수행하는 경우를 생각해 보면, 이는 훨씬 뒤떨어지는 성능을 보여준다:

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/

반응형

+ Recent posts