Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Queue.Equals() 메서드 완벽 가이드 – 사용법과 예제 코드

C#의 Queue.Equals() 메서드는 큐(Queue) 객체가 다른 객체와 동일한지 여부를 확인하는 데 사용됩니다. 이 메서드는 현재 인스턴스와 지정된 객체를 비교하여, 두 객체가 같은 참조를 가리키면 true, 그렇지 않으면 false를 반환합니다.

문법(Syntax)

Queue.Equals() 메서드의 기본 문법은 다음과 같습니다.

public virtual bool Equals(object obj);

여기서 매개변수 obj는 현재 큐 객체와 비교할 대상 객체를 의미합니다.

예제 1

먼저 Queue<string>을 활용한 예제를 살펴보겠습니다.

using System;
using System.Collections.Generic;
public class Demo {
   public static void Main(){
      Queue<string> queue = new Queue<string>();
      queue.Enqueue("Gary");
      queue.Enqueue("Jack");
      queue.Enqueue("Ryan");
      queue.Enqueue("Kevin");
      queue.Enqueue("Mark");
      queue.Enqueue("Jack");
      queue.Enqueue("Ryan");
      queue.Enqueue("Kevin");
      Console.WriteLine(queue.Equals(queue));
      Console.Write("요소 개수 = ");
      Console.WriteLine(queue.Count);
      queue.Clear();
      Console.Write("요소 개수(갱신 후) = ");
      Console.WriteLine(queue.Count);
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

True
요소 개수 = 8
요소 개수(갱신 후) = 0

이 예제에서 queue.Equals(queue)는 자기 자신과 비교하므로 True가 반환됩니다. 또한 Clear() 메서드 호출 후 요소 개수가 0으로 변경되는 것도 확인할 수 있습니다.

예제 2

이번에는 서로 다른 두 개의 Queue 객체를 비교하는 예제입니다.

using System;
using System.Collections;
public class Demo {
   public static void Main(){
      Queue queue = new Queue();
      queue.Enqueue(100);
      queue.Enqueue(200);
      queue.Enqueue(300);
      queue.Enqueue(400);
      Queue queue2 = new Queue();
      queue2.Enqueue(100);
      queue2.Enqueue(150);
      queue2.Enqueue(300);
      queue2.Enqueue(400);
      Console.WriteLine(queue.Equals(queue2));
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

False

핵심 정리

주목할 점은 두 큐에 담긴 요소가 일부만 달라도(200 vs 150) 결과가 False로 반환된다는 것입니다. 즉, Equals() 메서드는 단순히 내용의 유사성이 아니라 객체 자체의 동일성을 기준으로 판단한다는 점을 기억해야 합니다.