C#에서 Queue.ToArray() 메서드는 큐(Queue)에 저장된 모든 요소를 새로운 배열로 복사하는 데 사용됩니다. 이 메서드는 원본 큐에는 영향을 주지 않으며, 요소들은 큐에 삽입된 순서(선입선출 순서) 그대로 배열에 복사됩니다.
구문
Queue.ToArray() 메서드의 기본 구문은 다음과 같습니다.
public virtual object[] ToArray ();
반환값으로는 큐의 요소들이 순서대로 담긴 새로운 배열이 반환되며, 매개변수는 받지 않습니다.
예제 1: 정수형 큐를 배열로 변환하기
다음 예제는 정수(int) 타입의 큐를 생성하고, ToArray() 메서드를 사용하여 배열로 변환하는 과정을 보여줍니다.
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Queue<int> queue = new Queue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);
queue.Enqueue(4);
queue.Enqueue(5);
Console.WriteLine("큐 출력...");
foreach (int i in queue) {
Console.WriteLine(i);
}
int[] intArr = queue.ToArray();
Console.WriteLine("큐를 배열로 변환...");
foreach (int i in intArr) {
Console.WriteLine(i);
}
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
큐 출력... 1 2 3 4 5 큐를 배열로 변환... 1 2 3 4 5
예제 2: 문자열 큐를 배열로 변환하기
이번에는 문자열(string) 타입의 큐를 배열로 변환하는 예제입니다.
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Queue<string> queue = new Queue<string>();
queue.Enqueue("A");
queue.Enqueue("B");
queue.Enqueue("C");
queue.Enqueue("D");
queue.Enqueue("E");
queue.Enqueue("F");
Console.WriteLine("큐 출력...");
foreach (string i in queue) {
Console.WriteLine(i);
}
string[] strArr = queue.ToArray();
Console.WriteLine("큐를 배열로 변환...");
foreach (string i in strArr) {
Console.WriteLine(i);
}
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
큐 출력... A B C D E F 큐를 배열로 변환... A B C D E F
정리
Queue.ToArray() 메서드는 제네릭 타입(int, string 등)에 관계없이 큐의 요소들을 동일한 순서로 새 배열에 복사해 줍니다. 큐 데이터를 인덱스 기반으로 접근해야 하거나, 다른 배열 처리 로직에 전달해야 할 때 유용하게 활용할 수 있습니다. 참고로 이 메서드는 O(n)의 시간 복잡도를 가지며, 여기서 n은 큐에 포함된 요소의 개수입니다.