Stack – это подкласс Vector, который реализует стандартный стек last-in, first-out.
В Java Stack только определяет стандартный конструктор, который создает пустой стек. Stack включает все методы, определённые Vector, и самостоятельно добавляет несколько своих собственных.
Stack()
Методы
Кроме методов, унаследованных от его родительского класса Vector, Stack в Java определяет следующие методы.
№ | Метод и описание |
1 | boolean empty() Проверяет, является ли стек пустым. Возвращает true, если стек пустой. Возвращает false, если стек содержит элементы. |
2 | Object peek() Возвращает элемент, находящийся в верхней части стэка, но не удаляет его. |
3 | Object pop() Возвращает элемент, находящийся в верхней части стэка, удаляя его в процессе. |
4 | Object push(Object element) Вталкивает элемент в стек. Элемент также возвращается. |
5 | int search(Object element) Ищет элемент в стеке. Если найден, возвращается его смещение от вершины стека. В противном случае возвращается 1. |
Пример
Следующая программа показывает несколько методов, поддерживаемых этой коллекцией:
import java.util.*;
public class StackDemo {
static void showpush(Stack st, int a) {
st.push(new Integer(a));
System.out.println("Втолкнуть(" + a + ")");
System.out.println("Стек: " + st);
}
static void showpop(Stack st) {
System.out.print("Выстрелить -> ");
Integer a = (Integer) st.pop();
System.out.println(a);
System.out.println("Стек: " + st);
}
public static void main(String args[]) {
Stack st = new Stack();
System.out.println("Стек: " + st);
showpush(st, 42);
showpush(st, 66);
showpush(st, 99);
showpop(st);
showpop(st);
showpop(st);
try {
showpop(st);
} catch (EmptyStackException e) {
System.out.println("Пустой стек");
}
}
}
Получим следующее:
Стек: [ ]
Втолкнуть (42)
Стек: [42]
Втолкнуть (66)
Стек: [42, 66]
Втолкнуть (99)
Стек: [42, 66, 99]
Выстрелить -> 99
Стек: [42, 66]
Выстрелить -> 66
Стек: [42]
Выстрелить -> 42
Стек: [ ]
Выстрелить -> Пустой стек