Класс Stack<E>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.Vector<E>
java.util.Stack<E>
- Все реализованные интерфейсы:
-
Serializable,Cloneable,Iterable<E>,Collection<E>,List<E>,RandomAccess
public class Stack<E> extends Vector<E>
Класс
Stack представляет собой стек объектов, работающий по принципу «последним вошёл — первым вышел» (LIFO). Он расширяет класс Vector и добавляет пять операций, позволяющих рассматривать вектор как стек. Предоставляются обычные операции push и pop, а также метод для peek верхнего элемента стека, метод для проверки, является ли стек empty, и метод для search элемента в стеке и определения его позиции от вершины. При создании стека он не содержит элементов.
Более полное и согласованное множество операций стека LIFO предоставляет интерфейс Deque и его реализации, которые следует использовать вместо этого класса. Например:
Deque<Integer> stack = new ArrayDeque<Integer>();
- С тех пор как:
- 1.0
- См. также:
Краткое описание полей
Поля, объявленные в классе java.util.Vector
capacityIncrement, elementCount, elementData
Поля, объявленные в классе java.util.AbstractList
modCount
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Stack() |
Создаёт пустой стек. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
empty() |
Проверяет, пуст ли этот стек. |
E |
peek() |
Возвращает объект, расположенный на вершине стека, не удаляя его из стека. |
E |
pop() |
Удаляет объект с вершины стека и возвращает его значение. |
E |
push |
Помещает элемент на вершину стека. |
int |
search |
Возвращает 1-индексированную позицию элемента в стеке. |
Методы, объявленные в классе java.util.Vector
add, add, addAll, addAll, addElement, capacity, clear, clone, contains, containsAll, copyInto, elementAt, elements, ensureCapacity, equals, firstElement, forEach, get, hashCode, indexOf, indexOf, insertElementAt, isEmpty, iterator, lastElement, lastIndexOf, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeAllElements, removeElement, removeElementAt, removeIf, removeRange, replaceAll, retainAll, set, setElementAt, setSize, size, spliterator, subList, toArray, toArray, toString, trimToSize
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.util.Collection
parallelStream, stream, toArray
Подробное описание конструкторов
Stack
public Stack()
Создаёт пустой стек.
Подробное описание методов
push
public E push(E item)
Помещает элемент на вершину стека. Это эквивалентно:
addElement(item)
- Параметры:
-
item- элемент, который нужно поместить на вершину стека. - Возвращает:
- переданный
itemаргумент. - См. также:
pop
public E pop()
Удаляет объект с вершины стека и возвращает его значение.
- Возвращает:
- Объект с вершины стека (последний элемент в объекте
Vector). - Исключения:
-
EmptyStackException- если стек пуст.
peek
public E peek()
Возвращает объект, расположенный на вершине стека, не удаляя его из стека.
- Возвращает:
- объект на вершине стека (последний элемент в объекте
Vector). - Исключения:
-
EmptyStackException- если стек пуст.
empty
public boolean empty()
Проверяет, пуст ли этот стек.
- Возвращает:
-
trueесли и только если этот стек не содержит элементов;falseв противном случае.
search
public int search(Object o)
Возвращает 1-индексированную позицию элемента в стеке. Если объект
o встречается в этом стеке, этот метод возвращает расстояние от вершины стека до ближайшего вхождения объекта, расположенного ближе к вершине стека; верхний элемент стека считается на расстоянии 1. Метод equals используется для сравнения o с элементами в этом стеке.- Параметры:
-
o- желаемый объект. - Возвращает:
- 1-индексированную позицию с вершины стека, где находится объект; значение
-1указывает, что объекта нет в стеке.
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Stack.html