Класс стека Java
Класс Java Stack
В этом руководстве мы узнаем о классе Java Stack и его методах с помощью примеров.
Платформа коллекций Java имеет класс с именем Stack
. который обеспечивает функциональность структуры данных стека.
Stack
класс расширяет Vector
класс.
<час>
Реализация стека
В стеке элементы хранятся и доступны в порядке последний пришел – первый ушел. способ. То есть элементы добавляются на вершину стека и удаляются с вершины стека.
<час>
Создание стека
Чтобы создать стек, мы должны импортировать java.util.Stack
пакет первый. После импорта пакета мы можем создать стек в Java следующим образом.
Stack<Type> stacks = new Stack<>();
Здесь Type
указывает тип стека. Например,
// Create Integer type stack
Stack<Integer> stacks = new Stack<>();
// Create String type stack
Stack<String> 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<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
}
}
Вывод
Stack: [Dog, Horse, Cat]<час>
Метод pop()
Чтобы удалить элемент из вершины стека, мы используем pop()
метод. Например,
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> 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);
}
}
Вывод
Initial Stack: [Dog, Horse, Cat] Removed Element: Cat<час>
метод peek()
peek()
Метод возвращает объект с вершины стека. Например,
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> 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);
}
}
Вывод
Stack: [Dog, Horse, Cat] Element at top: Cat<час>
Метод поиска()
Для поиска элемента в стеке мы используем search()
метод. Он возвращает позицию элемента с вершины стека. Например,
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> 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);
}
}
Вывод
Stack: [Dog, Horse, Cat] Position of Horse: 2<час>
метод пустой()
Чтобы проверить, пуст стек или нет, мы используем empty()
метод. Например,
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> 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);
}
}
Вывод
Stack: [Dog, Horse, Cat] Is the stack empty? false<час>
Использовать ArrayDeque вместо стека
Stack
класс обеспечивает прямую реализацию структуры данных стека. Тем не менее, рекомендуется не использовать его. Вместо этого используйте ArrayDeque
класс (реализует Deque
интерфейс) для реализации структуры данных стека в Java.
Чтобы узнать больше, посетите:
- Java ArrayDeque
- Зачем использовать Deque вместо Stack?
java