Клас Stack
Призначення класу Stack — втілення cтруктури стека — лінійно упорядкованої структури (послідовності) даних, у яку можна вставити елемент з одного кінця або з якої можна вилучити елемент з того самого кінця. Інакше кажучи, для використання принципу: «Останній зайшов, перший вийшов» (англійською LIFO: Last In First Out)
Загальне уявлення про клас Stack можна отримати, переглянувши код програми та проаналізувавши її виведенням для стеку, в якому значення мають тип string.
Зауваження
Місткість стеку — це кількість елементів, які можна у ньому зберігати. При додаванні елементів місткість буде автоматично збільшено при необхідності шляхом перерозподілу пам'яті.
Не рекомендуюємо використовувати цей клас для нової розробки. Натомість рекомендують використовувати універсальний клас System.Collections.Generic.Stack<T>.
Якщо наявна кількість елементів менша ємності стеку, додавання елемента має ефективність O(1). Інакше, якщо ємність потрібно збільшити для розміщення нового елемента, ця операція має ефективність O(n), де n — кількість елементів стеку. Вилучення елемента має ефективність O(1).
Стек приймає null як допустиме значення і дозволяє дублювати елементи.
У поданому далі описі у дужках () вказано тип параметра.
Конструктори
-
Stack() — ініціалізує порожній стек з початковою ємністю як усталено.
-
Stack(ICollection) — ініціалізує стек, який містить елементи, скопійовані з указаної колекції, і має ємність, достатню для розміщення всіх скопійованих елементів.
-
Stack(Int32) — ініціалізує порожній стек, який має вказану початкову ємність або ємність як усталено, залежно від того, яке значення більше.
Властивості-
Count — наявна кількість елементів.
-
IsSynchronized — повертає значення true, якщо доступ до колекції синхронізовано (він є потокобезпечним).
-
SyncRoot — повертає об'єкт, за допомогою якого можна синхронізувати доступ до колекції.
Методи-
Clear() — видаляє всі об'єкти колекції.
-
Clone() — створює неповну копію колекції.
-
Contains(Object) — визначає, чи входить елемент у колекцію.
-
CopyTo(Array, Int32) — копіює елементи колекції у наявний вказаний одновимірний масив, починаючи з вказаного значення індексу масиву.
-
Equals(Object) — повертає true, якщо вказаний об'єкт дорівнює поточному. Інакше повертає false (успадковано від Object).
-
GetEnumerator() — повертає перечислювач, який перебирає елементи колекції.
-
GetHashCode() — хеш-функція як усталено (успадковано від Object).
-
GetType() — повертає об'єкт Type для поточного екземпляра (успадковано від Object).
-
MemberwiseClone() — створює неповну копію об'єкта (успадковано від Object).
-
Peek() — повертає об'єкт, що перебуває на початку, стека без видалення його.
-
Pop() — видаляє і повертає об'єкт, що знаходиться на початку стека.
-
Push(Object) — додає елемент у стек.
-
ToArray() — копіює елементи колекції у новий масив.
-
ToString() — повертає рядок, утворений з поточного об'єкта (успадковано від Object).
Додаткові дані про явні втілення інтерфейсу, методи розширення потоко-безпечність подано на сторінці сайту learn.microsoft.com.