Класс Stack – это подкласс Vector, который реализует стандартный стек last-in, first-out.

В Java Stack только определяет стандартный конструктор, который создает пустой стек. Stack включает все методы, определённые Vector, и самостоятельно добавляет несколько своих собственных.

Stack()

Методы

Кроме методов, унаследованных от его родительского класса Vector, Stack в Java определяет следующие методы.

Метод и описание
1boolean empty()
Проверяет, является ли стек пустым. Возвращает true, если стек пустой. Возвращает false, если стек содержит элементы.
2Object peek()
Возвращает элемент, находящийся в верхней части стэка, но не удаляет его.
3Object pop()
Возвращает элемент, находящийся в верхней части стэка, удаляя его в процессе.
4Object push(Object element)
Вталкивает элемент в стек. Элемент также возвращается.
5int search(Object element)
Ищет элемент в стеке. Если найден, возвращается его смещение от вершины стека. В противном случае возвращается 1.

Пример

Следующая программа показывает несколько методов, поддерживаемых коллекцией Stack в Java:

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
Стек: [ ]
Выстрелить -> Пустой стек

Оглавление