개요
C#에서 대기열(Queue)에 특정 요소가 존재하는지 확인하려면 Contains() 메서드를 사용합니다. 이 메서드는 지정한 요소가 큐 안에 있으면 true, 없으면 false를 반환합니다.
아래 예제를 통해 실제 사용 방법을 살펴보겠습니다.
예제 1: 문자열 요소 확인하기
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(){
Queue<string> queue = new Queue<string>();
queue.Enqueue("Electronics");
queue.Enqueue("Accessories");
queue.Enqueue("Toys");
queue.Enqueue("Books");
queue.Enqueue("Furniture");
queue.Enqueue("Clothing");
queue.Enqueue("Footwear");
queue.Enqueue("Cookware");
queue.Enqueue("Pet Supplies");
Console.WriteLine("대기열의 요소들...");
foreach(var element in queue){
Console.WriteLine(element);
}
Console.WriteLine("대기열에 Books 요소가 있나요? = " + queue.Contains("Books"));
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
대기열의 요소들... Electronics Accessories Toys Books Furniture Clothing Footwear Cookware Pet Supplies 대기열에 Books 요소가 있나요? = True
예제 2: 정수 요소 확인하기
이번에는 숫자형 데이터를 저장한 큐에서 특정 값의 존재 여부를 확인해 보겠습니다.
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(){
Queue<int> queue = new Queue<int>();
queue.Enqueue(100);
queue.Enqueue(200);
queue.Enqueue(300);
queue.Enqueue(400);
queue.Enqueue(500);
queue.Enqueue(600);
queue.Enqueue(700);
queue.Enqueue(800);
queue.Enqueue(1000);
Console.WriteLine("대기열의 요소들...");
foreach(var element in queue){
Console.WriteLine(element);
}
Console.WriteLine("대기열에 50 요소가 있나요? = " + queue.Contains(50));
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
대기열의 요소들... 100 200 300 400 500 600 700 800 1000 대기열에 50 요소가 있나요? = False
핵심 정리
- Contains(T item) 메서드는 큐에 해당 요소가 존재하는지 여부를 나타내는 불리언 값을 반환합니다.
- 존재하지 않는 값을 검색하면
false가 반환됩니다. - 이 메서드는 내부적으로 선형 검색을 수행하므로 시간 복잡도는 O(n)입니다. 따라서 큐의 크기가 클 경우 성능에 유의해야 합니다.
- 참조 형식의 경우 기본적으로 참조 일치 여부를 비교하지만, 요소 타입이 IEquatable<T>를 구현하면 해당 구현에 따라 동등성이 판단됩니다.