Класс 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 и рассмотрели простой пример с его использованием.