Класс Java Stack

В этом руководстве мы узнаем о классе 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?

Интересные статьи...