Queue<T> 클래스
- 선입선출(FIFO; first-in, first-out) 방식의 대기열(Queue) 자료구조를 나타내는 클래스
- 색인으로 특정 요소에 직접 접근할 수 없기에 IList<T> 와 IList를 구현하지 않음
* 임의 접근이 필요하면 ToArray 메서드를 통해 배열에 복사하여 사용
- 대기열은 내부적으로 배열로 구현됨
* 요소를 담을 공간이 부족해지면 대기열은 내부 배열을 더 큰 배열로 대체
* 삽입, 삭제 연산은 효율적(단 삽입으로 인해 크기가 변하지 않을 경우)
namespace System.Collections.Generic
{
public class Queue<T> : IEnumerable<T>, IEnumerable, ICollection, IReadOnlyCollection<T>
{
public Queue();
public Queue(int capacity); // 기초 크기 설정, 자동 크기 변경이 덜 발생하도록
public Queue(IEnumerable<T> collection); // 기존 콜렉션을 통해서 생성
// 대기열 조회, 검색
public int Count { get; }
public T Peek();
public bool Contains(T item);
// 대기열 추가, 삭제
public void Enqueue(T item);
public T Dequeue();
public void Clear();
// 열거
public Enumerator GetEnumerator();
public struct Enumerator : IEnumerator<T>, IDisposable, IEnumerator
{
public T Current { get; }
public void Dispose();
public bool MoveNext();
}
// 배열 공간 최적화
public void TrimExcess();
// 배열로의 복사
public T[] ToArray();
public void CopyTo(T[] array, int arrayIndex);
}
}
Queue 클래스
- 책에는 내용이 없는데 제네릭 없던 시절의 큐 클래스인듯
- 역시 마찬가지로 동기화 관련 사항이 있고, 생성자에서 growFactor를 지정해 줄 수 있는 점이 특이점
반응형
Stack<T> 클래스
- 후입선출(LIFO; last-in, first-out) 방식의 스택 자료구조를 나타내는 클래스
- Queue<T>와 흡사하나 Enqueue 대신 Push가, Dequeue 대신 Pop(맨 앞이 아닌 맨 뒤에서 꺼냄) 메서드가 존재
Stack 클래스
- Queue와 흡사하나 Enqueue 대신 Push가, Dequeue 대신 Pop(맨 앞이 아닌 맨 뒤에서 꺼냄) 메서드가 존재
- 역시 마찬가지로 동기화 관련 사항이 존재함
반응형
'C#' 카테고리의 다른 글
[C#] Dictionary<TKey,TValue>, Hashtable (0) | 2023.09.22 |
---|---|
[C#] IDictionary<TKey,TValue>, IReadOnlyDictionary<TKey,TValue>, IDictionary (0) | 2023.09.20 |
[C#] HashSet<T>, SortedSet<T> (0) | 2023.09.16 |
[C#] BitArray (0) | 2023.09.14 |
[C#] LinkedList<T>, LinkedListNode<T> (0) | 2023.09.10 |
[C#] IList<T>, IList (0) | 2023.09.08 |
[C#] ICollection<T>, ICollection (1) | 2023.08.31 |
[C#] AppContext (1) | 2023.08.30 |