> For the complete documentation index, see [llms.txt](https://luj.gitbook.io/code/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://luj.gitbook.io/code/data-structure/stack.md).

# 2 Stack

The `Stack`class represents a last-in-first-out (LIFO) stack of objects. It extends class Vector with five operations that allow a vector to be treated as a stack. The usual push and pop operations are provided, as well as a method to peek at the top item on the stack, a method to test for whether the stack is empty, and a method to search the stack for an item and discover how far it is from the top.

When a stack is first created, it contains no items.

A more complete and consistent set of LIFO stack operations is provided by the[`Deque`](https://docs.oracle.com/javase/7/docs/api/java/util/Deque.html)interface and its implementations, which should be used in preference to this class. For example:

```
Deque <Integer> stack = new ArrayDeque<Integer>();
```
