English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Queue는 특별한 컬렉션 타입으로, 요소를 FIFO(先进先出) 방식으로 저장합니다. Stack <T> 컬렉션과 정반대입니다. 추가된 순서로 요소를 포함합니다. C#은 일반적인 Queue<T> 컬렉션과 일반적인 Queue 컬렉션을 포함합니다. 일반적인 Queue<T> 컬렉션을 사용하는 것이 좋습니다.
Queue<T>는 FIFO(先进先出) 컬렉션입니다.
그것은 System.Collection.Generic 이름 공간 아래에 있습니다.
Queue<T>는 지정된 타입의 요소를 포함할 수 있습니다. 그것은 컴파일 시 타입 체크를 제공하며, 박스링을 수행하지 않습니다./압축해제,因为它它是泛型的.
Enqueue() 메서드를 사용하여 요소를 추가할 수 있습니다. 컬렉션 초기화(collection-initializer) 문법.
Dequeue() 및 Peek() 메서드를 사용하여 요소를 검색할 수 있습니다. 인덱서를 지원하지 않습니다.
아래 그림은 Queue 컬렉션을 설명합니다:
Queue<T>가 저장하는 요소 타입을 지정하여 생성할 수 있습니다. 아래 예제는 Enqueue() 메서드를 사용하여 Queue<T>에 요소를 생성하고 추가합니다. Queue 컬렉션은 null (참조형 타입에 대해)과 중복 값을 허용합니다.
Queue<int> callerIds = new Queue<int>(); callerIds.Enqueue(1); callerIds.Enqueue(2); callerIds.Enqueue(3); callerIds.Enqueue(4); foreach(var id in callerIds) Console.Write(id); //출력1234
속성 | 사용 방법 |
---|---|
Count | 큐에 있는 요소의 총 수를 반환합니다. |
메서드 | 사용 방법 |
---|---|
Enqueue(T) | 항목을 큐에 추가합니다. |
Dequeue | 큐의 시작에서 항목을 반환하고 그를 큐에서 제거합니다. |
Peek(T) | 첫 번째 항목을 반환하지만 제거하지 않습니다. |
Contains(T) | 항목이 큐에 있는지 확인 |
Clear() | 큐에서 모든 항목을 제거 |
Dequeue()와 Peek() 메서드는 큐 집합에서 첫 번째 요소를 검색하는 데 사용됩니다. Dequeue()는 FIFO 순서 큐 저장소에서 요소를 제거하고 반환합니다. 비어 있는 큐에서 Dequeue() 메서드를 호출하면 InvalidOperation 예외가 발생합니다. 따라서 큐를 호출하기 전에 항상 큐의 총 수가 0보다 크기를 확인하십시오.
Queue<string> strQ = new Queue<string>(); strQ.Enqueue("H"); strQ.Enqueue("e"); strQ.Enqueue("l"); strQ.Enqueue("l"); strQ.Enqueue("o"); Console.WriteLine("요소 총 수: {0}", strQ.Count); //출력 5 while(strQ.Count > 0){ Console.WriteLine(strQ.Dequeue()); //출력 Hello } Console.WriteLine("요소 총 수: {0}", strQ.Count); //출력 H
Peek() 메서드는 항상 큐 집합에서 첫 번째 항목을 반환하며, 그를 큐에서 제거하지 않습니다. 비어 있는 큐에서 Peek() 메서드를 호출하면 InvalidOperationException 예외가 발생합니다.
Queue<string> strQ = new Queue<string>(); strQ.Enqueue("H"); strQ.Enqueue("e"); strQ.Enqueue("l"); strQ.Enqueue("l"); strQ.Enqueue("o"); Console.WriteLine("요소 총 수: {0}", strQ.Count); //출력 5 if(strQ.Count > 0){ Console.WriteLine(strQ.Peek()); //출력 H Console.WriteLine(strQ.Peek()); //출력 H } Console.WriteLine("요소 총 수: {0}", strQ.Count); //출력 H
Contains() 메서드는 큐에 프로젝트가 존재하는지 확인합니다. 지정된 프로젝트가 존재하면 true를 반환하고, 그렇지 않으면 false를 반환합니다。
Contains() 서명:
bool Contains(object obj);
Queue<int> callerIds = new Queue<int>(); callerIds.Enqueue(1); callerIds.Enqueue(2); callerIds.Enqueue(3); callerIds.Enqueue(4); callerIds.Contains(2); //true callerIds.Contains(10); //false