C#

[C#]HashSet 데이터 추가하는 방법

DevStory 2022. 8. 21.

HashSet 데이터 추가하는 방법

이번 포스팅은 HashSet에 데이터를 추가할 수 있는 몇 가지 방법을 소개합니다.


방법 1. 초기화

첫 번째 방법으로 HashSet 객체를 생성할 때, 데이터를 추가할 수 있습니다.

 

생성자 함수 다음에 중괄호를 사용하며, 중괄호 내부에 추가하려는 데이터를 입력합니다.


예제 1. 기본 타입

다음 예제는 int 타입의 HashSet 객체를 생성할 때, 데이터를 추가합니다.

class Program
{
  static void Main(string[] args)
  {
    HashSet<int> hs = new HashSet<int>()
    {
      10, 20, 30, 40, 50
    };

    Console.WriteLine("[hs의 요소]");
    foreach (int item in hs)
    {
      Console.Write(item + " ");
    }
  }
}

[실행 결과]

[hs의 요소]
10 20 30 40 50

예제 2. 사용자가 정의한 클래스 타입

다음 예제는 HashSet 데이터의 타입이 사용자가 정의한 클래스인 경우 HashSet 객체를 생성할 때, 데이터를 추가하는 방법을 보여줍니다.

public class Person
{
  public string Name { get; set; }
  public int Age { get; set; }
}

class Program
{
  static void Main(string[] args)
  {
    HashSet<Person> hs = new HashSet<Person>()
    {
      new Person(){Name="둘리", Age=20},
      new Person(){Name="또치", Age=30},
      new Person(){Name="마이콜", Age=40}
    };

    Console.WriteLine("[hs의 요소]");
    foreach (Person item in hs)
    {
      Console.WriteLine("Name: " + item.Name + ", Age: " + item.Age);
    }
  }
}

[실행 결과]

[hs의 요소]
Name: 둘리, Age: 20
Name: 또치, Age: 30
Name: 마이콜, Age: 40

방법 2. HashSet의 Add 메서드

두 번째 방법으로 HashSet 클래스에서 제공하는 Add() 메서드를 사용합니다.

public bool Add (T item);

Add() 메서드는 HashSet에 데이터가 정상적으로 추가되었으면 true를 반환하고 데이터가 이미 존재하는 경우 false를 반환합니다. 

class Program
{
  static void Main(string[] args)
  {
    HashSet<int> hs = new HashSet<int>();

    Console.WriteLine("10이 정상적으로 추가되었는가? " + hs.Add(10));
    Console.WriteLine("10이 정상적으로 추가되었는가? " + hs.Add(10));
    Console.WriteLine("20이 정상적으로 추가되었는가? " + hs.Add(20));
    Console.WriteLine("30이 정상적으로 추가되었는가? " + hs.Add(30));

    Console.WriteLine("\n[hs의 요소]");
    foreach (int item in hs)
    {
      Console.Write(item + " ");
    }
  }
}

[실행 결과]

10이 정상적으로 추가되었는가? True
10이 정상적으로 추가되었는가? False
20이 정상적으로 추가되었는가? True
30이 정상적으로 추가되었는가? True

[hs의 요소]
10 20 30

방법 3. HashSet의 UnionWith메서드

마지막 방법으로 HashSet에서 제공하는 UnionWith() 메서드를 사용하여 데이터를 추가할 수 있습니다.

 

추가하려는 데이터가 여러 개인 경우 UnionWith() 메서드를 사용합니다.

 

다음 예제는 int 타입의 HashSet에 int 타입의 List에 존재하는 데이터를 추가합니다.

class Program
{
  static void Main(string[] args)
  {
    HashSet<int> hs = new HashSet<int>();
    List<int> li = new List<int>()
    {
      10, 20, 30
    };

    hs.UnionWith(li);

    Console.WriteLine("[hs의 요소]");
    foreach (int item in hs)
    {
      Console.Write(item + " ");
    }
  }
}

[실행 결과]

[hs의 요소]
10 20 30
반응형

댓글