[개발] C#, .Net

[C#] HashSet<T> 클래스 이해하기

  • -
반응형

 

C# HashSet<T> 클래스 이해하기

C#의 HashSet<T> 클래스는 중복을 허용하지 않는 고유한 요소를 저장하는 컬렉션입니다. System.Collections.Generic 네임스페이스에 포함되어 있으며, 요소를 저장하는 데 해시 테이블을 사용합니다. 이를 통해 빠른 조회, 추가 및 삭제 작업을 수행할 수 있습니다.

 

 

 

 

 

주요 기능

  • 고유성: 모든 요소가 고유하도록 보장합니다.
  • 성능: 대부분의 작업(추가, 삭제, 포함 여부 확인)에 대해 평균 O(1) 시간 복잡도를 제공합니다.
  • 순서 보장 없음: 요소가 특정 순서로 저장되지 않습니다.

 

 

 

 

 

예제 코드

HashSet<T>의 기본적인 사용 예제는 다음과 같습니다:


using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // HashSet 초기화
        HashSet<string> hashSet = new HashSet<string>();

        // 요소 추가
        hashSet.Add("apple");
        hashSet.Add("banana");
        hashSet.Add("cherry");

        // 중복 요소 추가 시도
        bool added = hashSet.Add("apple"); // false 반환

        // 요소 포함 여부 확인
        bool containsBanana = hashSet.Contains("banana"); // true 반환

        // 요소 삭제
        hashSet.Remove("cherry");

        // 모든 요소 출력
        foreach (var item in hashSet)
        {
            Console.WriteLine(item);
        }
    }
}

 

 

 

 

 

 

HashSet<T>의 주요 메서드

  • Add(T item): 요소를 추가합니다. 중복된 요소는 추가되지 않습니다.
  • Remove(T item): 요소를 제거합니다.
  • Contains(T item): 요소의 포함 여부를 확인합니다.
  • Clear(): 모든 요소를 제거합니다.
  • Count: HashSet에 포함된 요소의 수를 반환합니다.

 

 

 

 

 

 

성능 고려사항

HashSet<T>은 대부분의 작업에 대해 평균 O(1) 시간 복잡도를 제공하므로 성능이 뛰어납니다. 하지만 해시 충돌이 발생하면 성능이 저하될 수 있습니다. 따라서 요소의 해시 코드를 잘 설계하는 것이 중요합니다.

HashSet<T>을 사용하면 고유한 요소만을 저장하고 빠른 조회, 추가, 삭제 작업을 수행할 수 있습니다. 다양한 시나리오에서 HashSet<T>을 활용하여 효율적인 컬렉션 관리를 해보세요.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.