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

C# 대기열(Queue)에 특정 요소가 포함되어 있는지 확인하는 방법

개요

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>를 구현하면 해당 구현에 따라 동등성이 판단됩니다.