C#에서 Queue(큐)의 맨 끝에 개체를 추가하려면 Enqueue() 메서드를 사용합니다. 큐는 FIFO(First In First Out, 선입선출) 구조로 동작하는 컬렉션이기 때문에, 새로 추가된 요소는 항상 큐의 뒤쪽에 배치됩니다.
Enqueue() 메서드란?
Enqueue()는 System.Collections.Generic 네임스페이스의 Queue<T> 클래스에서 제공하는 메서드로, 지정한 개체를 큐의 끝에 삽입합니다. 반대로 큐의 앞쪽에서 요소를 제거할 때는 Dequeue() 메서드를 사용합니다.
예제 1: Enqueue로 요소 추가하고 확인하기
다음 예제는 문자열 타입의 큐를 생성하고, 여러 개의 요소를 Enqueue()로 추가한 뒤 전체 요소를 출력하는 코드입니다. 또한 Contains() 메서드를 사용해 특정 요소가 큐에 존재하는지도 확인합니다.
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("Elements in the Queue...");
foreach(var element in queue){
Console.WriteLine(element);
}
Console.WriteLine("Do the queue has the element Books? = "+queue.Contains("Books"));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Elements in the Queue... Electronics Accessories Toys Books Furniture Clothing Footwear Cookware Pet Supplies Do the queue has the element Books? = True
실행 결과를 보면 Enqueue()로 추가한 순서대로 요소가 저장되어 있으며, "Books"라는 요소가 큐에 포함되어 있음을 True로 확인할 수 있습니다.
예제 2: Count 속성과 Clear() 메서드 활용하기
이번에는 큐에 저장된 요소의 개수를 Count 속성으로 확인하고, Clear() 메서드로 모든 요소를 제거한 후 개수가 어떻게 변하는지 살펴보겠습니다.
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.Write("Count of elements = ");
Console.WriteLine(queue.Count);
queue.Clear();
Console.Write("Count of elements (updated) = ");
Console.WriteLine(queue.Count);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Count of elements = 8 Count of elements (updated) = 0
8개의 요소를 추가했을 때 Count 값이 8로 표시되고, Clear() 호출 후에는 0으로 변경된 것을 확인할 수 있습니다.
정리
- Enqueue(): 큐의 맨 끝에 개체를 추가합니다.
- Dequeue(): 큐의 맨 앞에서 개체를 제거하고 반환합니다.
- Peek(): 제거하지 않고 큐의 맨 앞 개체만 반환합니다.
- Contains(): 특정 요소가 큐에 있는지 여부를 확인합니다.
- Clear(): 큐의 모든 요소를 제거합니다.
C#의 큐는 작업 대기열 처리, 메시지 버퍼링 등 순서가 중요한 다양한 상황에서 유용하게 활용될 수 있습니다.