В этом руководстве мы узнаем о классе Java Stack и его методах с помощью примеров.
В структуре коллекций Java есть класс с именем, Stack
который обеспечивает функциональность структуры данных стека.
Stack
Класс расширяет Vector
класс.
Реализация стека
В стеке элементы хранятся и доступны в порядке « последним вошел - первым ушел» . То есть элементы добавляются к вершине стека и удаляются с вершины стека.
Создание стека
Чтобы создать стек, мы должны java.util.Stack
сначала импортировать пакет. После импорта пакета вот как мы можем создать стек на Java.
Stack stacks = new Stack();
Здесь Type
указывает тип стека. Например,
// Create Integer type stack Stack stacks = new Stack(); // Create String type stack Stack stacks = new Stack();
Методы стека
Поскольку Stack
расширяет Vector
класс, он наследует все методы Vector
. Чтобы узнать о различных Vector
методах, посетите Java Vector Class.
Помимо этих методов, в Stack
класс включены еще 5 методов, отличающих его от Vector
.
push () Метод
Чтобы добавить элемент в верхнюю часть стека, мы используем push()
метод. Например,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); ) )
Вывод
Стек: (Собака, Лошадь, Кот)
pop () Метод
Чтобы удалить элемент из вершины стека, мы используем pop()
метод. Например,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Initial Stack: " + animals); // Remove element stacks String element = animals.pop(); System.out.println("Removed Element: " + element); ) )
Вывод
Первоначальный набор: (Собака, Лошадь, Кот) Удаленный элемент: Кошка.
peek () Метод
peek()
Метод возвращает объект из вершины стека. Например,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Access element from the top String element = animals.peek(); System.out.println("Element at top: " + element); ) )
Вывод
Стек: (Собака, Лошадь, Кот) Верхний элемент: Кот
search () Метод
Для поиска элемента в стеке мы используем search()
метод. Он возвращает позицию элемента сверху стека. Например,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Search an element int position = animals.search("Horse"); System.out.println("Position of Horse: " + position); ) )
Вывод
В стопке: (Собака, Лошадь, Кошка) Позиция лошади: 2
empty () Метод
Чтобы проверить, пуст ли стек или нет, мы используем empty()
метод. Например,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Check if stack is empty boolean result = animals.empty(); System.out.println("Is the stack empty? " + result); ) )
Вывод
Стек: (Собака, Лошадь, Кот) Стопка пуста? ложный
Используйте ArrayDeque вместо Stack
Stack
Класс обеспечивает непосредственную реализацию структуры стека данных. Однако не рекомендуется его использовать. Вместо этого используйте ArrayDeque
класс (реализует Deque
интерфейс) для реализации структуры данных стека в Java.
Чтобы узнать больше, посетите:
- Java ArrayDeque
- Зачем использовать Deque вместо Stack?