В този урок ще научим за класа Java Stack и неговите методи с помощта на примери.
Рамката на колекциите на Java има клас с име, Stackкойто осигурява функционалността на структурата на стека данни.
В Stackклас разширява Vectorклас.

Внедряване на стека
В стека елементите се съхраняват и се осъществява достъп до тях по начин Last In First Out . Тоест, елементите се добавят в горната част на стека и се отстраняват от горната част на стека.

Създаване на стек
За да създадем стек, първо трябва да импортираме 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()метода. Например,
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?








