У цьому підручнику ми дізнаємося про клас Java Stack та його методи за допомогою прикладів.
Структура колекцій Java має клас з іменем, Stack
який забезпечує функціональність структури даних стека.
Stack
Клас розширює Vector
клас.
Впровадження стека
У стеку елементи зберігаються та отримуються доступ до них способом « Останнє введення». Тобто елементи додаються у верх стека і видаляються з верху стека.
Створення стека
Для того, щоб створити стек, java.util.Stack
спочатку потрібно імпортувати пакет. Як тільки ми імпортуємо пакет, ось як ми можемо створити стек на Java.
Stack stacks = new Stack();
Тут Type
вказує тип стека. Наприклад,
// Create Integer type stack Stack stacks = new Stack(); // Create String type stack Stack stacks = new Stack();
Методи стека
Оскільки Stack
розширює Vector
клас, він успадковує всі методи Vector
. Щоб дізнатись про різні Vector
методи, відвідайте Java Vector Class.
Окрім цих методів, Stack
клас включає ще 5 методів, що відрізняють його від Vector
.
метод push ()
Щоб додати елемент у верх стека, ми використовуємо push()
метод. Наприклад,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); ) )
Вихідні дані
Стек: (собака, кінь, кішка)
метод pop ()
Щоб видалити елемент з верхньої частини стека, ми використовуємо pop()
метод. Наприклад,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Initial Stack: " + animals); // Remove element stacks String element = animals.pop(); System.out.println("Removed Element: " + element); ) )
Вихідні дані
Початковий стек: (Собака, Кінь, Кіт) Видалений елемент: Кот
метод peek ()
peek()
Метод повертає об'єкт з вершини стека. Наприклад,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Access element from the top String element = animals.peek(); System.out.println("Element at top: " + element); ) )
Вихідні дані
Стек: (Собака, Кінь, Кіт) Елемент зверху: Кот
метод пошуку ()
Для пошуку елемента в стеку ми використовуємо search()
метод. Він повертає позицію елемента з верхньої частини стека. Наприклад,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Search an element int position = animals.search("Horse"); System.out.println("Position of Horse: " + position); ) )
Вихідні дані
Стек: (Собака, Кінь, Кіт) Положення Коня: 2
Метод empty ()
Щоб перевірити, порожній стек чи ні, ми використовуємо empty()
метод. Наприклад,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Check if stack is empty boolean result = animals.empty(); System.out.println("Is the stack empty? " + result); ) )
Вихідні дані
Стек: (Собака, Кінь, Кіт) Чи стопка порожня? помилковий
Використовуйте ArrayDeque замість Stack
Stack
Клас забезпечує безпосередню реалізацію структури стека даних. Однак рекомендується не використовувати його. Натомість використовуйте ArrayDeque
клас (реалізує Deque
інтерфейс) для реалізації структури даних стеку в Java.
Щоб дізнатись більше, відвідайте:
- Java ArrayDeque
- Навіщо використовувати Deque над Stack?