더북(TheBook)

2.2.7 해시 집합

고유한 값만 저장할 수 있다는 점을 제외하고 집합(set)은 배열이나 리스트와 같다. 우리가 방금까지 알아본 해시 기반의 맵 덕분에 딕셔너리 키와 같은 O(1) 검색 성능을 가지는 것은, 배열이나 리스트에 비해 집합이 갖는 장점이다. 즉, 주어진 배열이나 리스트에 어떤 항목이 들어 있는지 확인하기 위해 많이 검사해야 하는 경우 집합을 사용하는 것이 더 빠를 수 있다. .NET에서는 HashSet이라고 하며 무료로 사용할 수 있다.

HashSet은 조회나 삽입이 빠르기 때문에 교집합(intersection)이나 합집합(union)을 구하는 작업에도 적합하다. 심지어 이러한 기능을 제공하는 메서드를 함께 제공한다. 이러한 장점을 잘 활용하려면 GetHashCode() 구현에 다시 주의를 기울여야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.