В този урок ще научим за класа 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?