C#에서 Queue.Clear() 메서드는 큐(Queue)에 저장된 모든 개체를 한 번에 제거하는 데 사용됩니다. 이 메서드를 호출하면 큐의 Count 속성 값이 0이 되며, 큐 자체는 그대로 유지된 채 내부 요소만 비워집니다.
구문
Queue.Clear() 메서드의 기본 구문은 다음과 같습니다.
public virtual void Clear();
예제 1
아래 예제에서는 정수형 큐에 여러 값을 추가한 후, Clear() 메서드로 모든 요소를 제거하는 과정을 보여줍니다.
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(900);
queue.Enqueue(1000);
Console.WriteLine("큐 전체 출력...");
foreach(int i in queue) {
Console.WriteLine(i);
}
Console.WriteLine("큐의 요소 개수 = " + queue.Count);
queue.Clear();
Console.WriteLine("Clear() 호출 후 큐의 요소 개수 = " + queue.Count);
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
큐 전체 출력... 100 200 300 400 500 600 700 800 900 1000 큐의 요소 개수 = 10 Clear() 호출 후 큐의 요소 개수 = 0
예제 2
다음 예제는 큐에 요소를 추가한 뒤 Count를 확인하고, 다시 요소를 추가한 후 Clear() 메서드로 비우는 과정을 단계별로 보여줍니다.
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);
Console.WriteLine("큐 전체 출력...");
foreach(int i in queue) {
Console.WriteLine(i);
}
Console.WriteLine("큐의 요소 개수 = " + queue.Count);
queue.Enqueue(800);
queue.Enqueue(900);
queue.Enqueue(1000);
Console.WriteLine("요소 추가 후 큐의 요소 개수 = " + queue.Count);
queue.Clear();
Console.WriteLine("Clear() 호출 후 큐의 요소 개수 = " + queue.Count);
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
큐 전체 출력... 100 200 300 큐의 요소 개수 = 3 요소 추가 후 큐의 요소 개수 = 6 Clear() 호출 후 큐의 요소 개수 = 0
정리
Queue.Clear() 메서드는 시간 복잡도 O(n)으로 큐의 모든 요소를 제거하며, 반환값은 없습니다(void). 큐를 재사용해야 하거나 메모리를 즉시 해제하고 싶을 때 유용하게 활용할 수 있습니다.