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() 메서드는 단순히 내용의 유사성이 아니라 객체 자체의 동일성을 기준으로 판단한다는 점을 기억해야 합니다.