Клас Queue
Призначення класу Queue — втілення cтруктури черги — лінійно упорядкованої структури (послідовності) даних, у яку можна вставити елемент з одного кінця або з якої можна вилучити елемент з іншого кінця. Інакше кажучи, для використання принципу: «Першим зайшов, перший вийшов» (англійською First In First Out, FIFO).
Загальне уявлення про клас Queue можна отримати, переглянувши код програми та проаналізувавши її виведенням для черги, в якій значення мають тип string.
У поданому далі описі у дужках () вказано тип параметра (типи параметрів).
Основні операції
-
Enqueue — додає елемент до кінця черги;
-
Dequeue — видаляє найстаріший елемент з початку черги;
-
Peek — повертає елемент на початку черги без його видалення.
Приймає null як допустиме значення для типів посилань і дозволяє дублювати елементи.
Зауваження
-
Місткість черги — це кількість елементів, які може зберігати черга. При додаванні елементів ємність автоматично збільшується при необхідності шляхом перерозподілу пам'яті. Місткість можна зменшити, викликавши метод TrimToSize.
Коефіцієнт зростання вказує, у скільки разів збільшують поточну ємність при потребі. Його визначають при побудові черги. Як усталено його значення 2. Місткість черги завжди збільшують щонаймнше на чотири. Наприклад, при коефіцієнті зростання 1 завжди збільшують ємність на чотири при потребі.
Queue приймає null як допустиме значення і допускає дублювання елементів.
Конструктори
-
Queue() — ініціалізує порожній представник класу із заданими як усталено ємністю та коефіцієнтом зростання.
-
Queue(ICollection) — ініціалізує представник класу, що містить елементи, скопійовані з указаної колекції, і має початкову ємність, що дорівнює кількості скопійованих елементів, і заданим як усталено коефіцієнтом зростання.
-
Queue(Int32) — ініціалізує порожній представник класу з указаною початковою ємністю та заданим як усталено коефіцієнтом зростання.
-
Queue(Int32, Single) — ініціалізує порожній представник класу з указаними початковою ємністю та коефіцієнтом зростання.
Властивості-
Count — кількість елементів.
-
IsSynchronized — повертає true, якщо доступ до колекції синхронізованим (вона є потокобезпечною). Інакше повертає false.
-
SyncRoot — повертає об'єкт, за допомогою якого можна синхронізувати доступ до колекції.
Методи
-
Clear() — видаляє всі об'єкти колекції.
-
Clone() — створює неповну копію колекції.
-
Contains(T) — визначає, чи входить указаний елемент у колекцію.
-
CopyTo(Array, Int32) — копіює елементи колекції у наявний вказаний одновимірний масив Array, починаючи з вказаного значення індексу масиву.
-
Dequeue() — видаляє об'єкт із початку колекції та повертає його.
-
Enqueue(T) — додає об'єкт до кінця колекції.
-
Equals(Object) — повертає true, якщо вказаний об'єкт дорівнює поточному. Інакше повертає false (успадковано від Object).
-
GetEnumerator() — повертає перечислювач, який перебирає елементи колекції.
-
GetHashCode() — хеш-функція як усталено (успадковано від Object).
-
GetType() — повертає об'єкт Type для поточного представника (успадковано від Object).
-
MemberwiseClone() — створює неповну копію об'єкта (успадковано від Object).
-
Peek() — повертає об'єкт, що перебуває на початку черги без видалення його.
-
Synchronized(Queue) — повертає нову чергу, уклавши вихідну чергу у потокобезпечну оболонку.
-
ToArray() — копіює елементи колекції у новий масив.
-
ToString() — повертає рядок, утворений з поточного об'єкта (успадковано від Object).
-
TrimToSize() — задає значення ємності, що дорівнює наявній кількості елементів черги.
Додаткові дані про явні втілення інтерфейсу, методи розширення потоко-безпечність подано на сторінці сайту learn.microsoft.com.