Руководство по Java Core. Структуры данных в языке Java. Stack.

Класс Stack является подклассом Vector и реализовывает структуру “крайний на вход – первый на выход”.

Этот класс имеет только один конструктор по умолчанию и все методы класса Vector. Плюс к этому Stack имеет ещё свои 5 методов:

  • boolean empty()
    Этот метод проверяет, является ли стэк пустым или нет. Если стэк пустой – возвращает true, если нет –  false.
  • Object peek()
    Этот метод возвращает  элемент, который находится на вершине стека.
  • Object pop()
    Этот метод возвращает элемент, который находится на вершине стека и удаляет его.
  • Object push(Object element)
    Этот метод добавляет указанный элемент на вершину стека.
  • int search(Object element)
    Этот метод выполняет поиск указанного элемента в стеке. Если искомый элемент найден – возвращается его “отдалённость” от вершины (порядковый номер). Если элемент не найден – возвращается значение -1.

Для понимания того, как это работает на практике, рассмотрим пример простого приложения.

Пример:

Класс StackDemo


import java.util.Stack;

public class StackDemo {
    public static void main(String[] args) {
        Stack stack = new Stack();

        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);
        stack.push(5);

        System.out.println("Initial stack: " + stack);

        System.out.println("Searching value 3 in stack...");
        System.out.println(stack.search(3));

        System.out.println("Searching value 10 in stack...");
        System.out.println(stack.search(10));

        stack.pop();
        stack.pop();

        System.out.println("Pushing values 6,7,8 into stack...");

        stack.push(6);
        stack.push(7);
        stack.push(8);

        System.out.println("First element of the stack: " + stack.peek());



        System.out.println("Final stack: " + stack);
    }
}

В результате работы программы мы получим следующий результат:


/*Some System Messages*/

Initial stack: [1, 2, 3, 4, 5]
Searching value 3 in stack...
3
Searching value 10 in stack...
-1
Pushing values 6,7,8 into stack...
First element of the stack: 8
Final stack: [1, 2, 3, 6, 7, 8]

В этом уроке мы изучили основы класса Stack и рассмотрели простой пример с его использованием.