Класс Stack в Java
Stack является подклассом Vector и реализует стандартный стек, работающий по принципу «последним пришёл — первым ушёл».
Stack определяет только конструктор по умолчанию, который используется для создания пустого стека. Помимо всех методов, определённых в Vector, Stack также определяет некоторые собственные методы.
Stack()
Помимо всех методов, определённых в Vector, он также определяет некоторые собственные методы:
| Нет. | Описание метода |
|---|---|
| 1 |
boolean empty() Проверяет, пуст ли стек. |
| 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<Integer> st, int a) {
st.push(new Integer(a));
System.out.println("push(" + a + ")");
System.out.println("stack: " + st);
}
static void showpop(Stack<Integer> st) {
System.out.print("pop -> ");
Integer a = (Integer) st.pop();
System.out.println(a);
System.out.println("стек: " + st);
}
public static void main(String args[]) {
Stack<Integer> st = new Stack<Integer>();
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("пустой стек");
}
}
}
Результат компиляции и запуска приведенного выше примера выглядит следующим образом:
stack: [ ] push(42) stack: [42] push(66) stack: [42, 66] push(99) stack: [42, 66, 99] pop -> 99 stack: [42, 66] pop -> 66 stack: [42] pop -> 42 stack: [ ] pop -> empty stackДругие расширения