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

C# 큐(Queue) 클래스 완벽 정리: Enqueue와 Dequeue 사용법

C# 큐(Queue)란 무엇인가?

C#의 Queue(큐) 클래스는 선입선출(FIFO: First-In, First-Out) 방식으로 객체를 저장하는 컬렉션입니다. 말 그대로 가장 먼저 추가된 요소가 가장 먼저 제거되는 구조이기 때문에, 작업 처리 순서를 그대로 유지해야 하는 상황에서 매우 유용하게 사용됩니다.

큐에서 요소를 추가하는 동작을 Enqueue(인큐), 요소를 제거하는 동작을 Dequeue(디큐)라고 부릅니다.

큐에 요소 추가하기 – Enqueue

큐에 새로운 요소를 추가하려면 Enqueue() 메서드를 사용합니다.

Queue q = new Queue();

q.Enqueue('X');
q.Enqueue('Y');
q.Enqueue('Z');

큐에서 요소 제거하기 – Dequeue

반대로 큐에서 요소를 꺼내려면 Dequeue() 메서드를 사용합니다. 아래 코드는 큐가 빌 때까지 모든 요소를 순서대로 제거하며 출력하는 예시입니다.

// 요소 제거
while (q.Count > 0)
   Console.WriteLine(q.Dequeue());

전체 예제 코드

다음은 큐에 여러 개의 문자를 추가한 뒤, 현재 큐의 내용을 출력하는 전체 예제입니다.

using System;
using System.Collections;

namespace Demo {
   class Program {
      static void Main(string[] args) {
         Queue q = new Queue();

         q.Enqueue('t');
         q.Enqueue('u');
         q.Enqueue('v');
         q.Enqueue('w');
         q.Enqueue('x');

         Console.WriteLine("Current queue: ");
         foreach (char c in q) Console.Write(c + " ");

         Console.WriteLine();
         Console.ReadKey();
      }
   }
}

실행 결과

Current queue:
t u v w x

자주 사용되는 Queue 주요 멤버

실무에서 큐를 다룰 때 자주 쓰이는 멤버들을 함께 알아두면 좋습니다.

  • Count: 큐에 현재 저장된 요소의 개수를 반환합니다.
  • Peek(): 요소를 제거하지 않고 맨 앞의 요소만 확인합니다.
  • Contains(object obj): 특정 요소가 큐에 존재하는지 확인합니다.
  • Clear(): 큐의 모든 요소를 한 번에 제거합니다.

이처럼 C#의 Queue 클래스는 FIFO 구조가 필요한 작업 대기열, 메시지 처리, 순차 실행 로직 등을 구현할 때 핵심적인 역할을 하는 컬렉션입니다.