[C# 컬렉션클래스, 큐, Queue] Queue란?, 큐 예제
					
						꽁스짱					
																
							
							
							C#						
										
					
					0					
					
					4257
															
						
						
							2021.02.15 22:55						
					
				
			[C# 컬렉션클래스, 큐, Queue] Queue란?, 큐 예제
- 큐는 FIFO(First In First Out) 형태의 자료구조를 구현핚 클래스로 메시지를 받은 순서대로 저장하는 데 유용하다. 
- System.Collections.Queue 클래스는 큐를 순홖 배열로 구현했는데 Queue 에 저장되는 개체들은 한쪽 끝에서 삽입되고 
- 다른 쪽 끝에서 제거된다. 배열이나 리스트가 데이터에 자유롭게 접귺하는 반면 큐는 입력은 오직 뒤(rear),
- 출력은 오직 앞(front)에서맊 읷어난다. 널 값을 허용하고 중복을 허용하는 자료구조 이다.
using System;
using System.Collections;
public class SamplesQueue
{
	public static void Main()
	{
		// Creates and initializes a new Queue.
		//큐에 값을 넣을 때는 Enqueue 메소드 이용
		Queue myQ = new Queue(); 
		myQ.Enqueue("Hello");
		myQ.Enqueue("World"); 
		myQ.Enqueue("!");
		//Front쪽의 출력되기 직전의 데이터를리턴한다, 
		//여기서는 "Hello", 값만 리턴하며 큐에 값은 여전히 남아있다.
		Console.WriteLine(myQ.Peek());
		//Queue의 내용을 배열로 변환 후 출력
		object[] strQueue = myQ.ToArray();
		Console.WriteLine("--------------------------------");
		PrintValues(strQueue);
		Console.WriteLine("--------------------------------");
		// Displays the properties and values of the Queue.
		Console.WriteLine("myQ"); 
		Console.WriteLine("\tCount: {0}", myQ.Count);
		Console.Write("\tValues:"); PrintValues(myQ);
		Console.WriteLine(myQ.Contains("Hello"));
		//Dequeue : 큐에 있는 값을 제거하며 제거된 값을 리턴
		Console.WriteLine("--------------------------------");
		Console.WriteLine(myQ.Dequeue());
		Console.WriteLine(myQ.Dequeue());
		Console.WriteLine(myQ.Dequeue());
		Console.WriteLine(myQ.Contains("Hello"));		
	}
	public static void PrintValues(IEnumerable myCollection)
	{
		foreach (Object obj in myCollection) Console.Write(" {0}", obj);
		Console.WriteLine();
	}
}
[결과]
Hello
--------------------------------
 Hello World !
--------------------------------
myQ
        Count: 3
        Values: Hello World !
True
--------------------------------
Hello
World
!
False

 
															
