java.util
类 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 方法。
首次创建堆栈时,它不包含项。
Deque
接口及其实现提供了 LIFO 堆栈操作的更完整和更一致的 set,应该优先使用此 set,而非此类。例如:
Deque<Integer> stack = new ArrayDeque<Integer>();
- 从以下版本开始:
JDK1.0
字段摘要 |
---|
从类 java.util.Vector 继承的字段 |
---|
capacityIncrement, elementCount, elementData |
从类 java.util.AbstractList 继承的字段 |
---|
modCount |
构造方法摘要 | |
---|---|
Stack() 创建一个空堆栈。 |
方法摘要 | |
---|---|
boolean |
empty() 测试堆栈是否为空。 |
E |
peek() 查看堆栈顶部的对象,但不从堆栈中移除它。 |
E |
pop() 移除堆栈顶部的对象,并作为此函数的值返回该对象。 |
E |
push(E item) 把项压入堆栈顶部。 |
int |
search(Object o) 返回对象在堆栈中的位置,以 1 为基数。 |
从类 java.util.Vector 继承的方法 |
---|
add, add, addAll, addAll, addElement, capacity, clear, clone, contains, containsAll, copyInto, elementAt, elements, ensureCapacity, equals, firstElement, get, hashCode, indexOf, indexOf, insertElementAt, isEmpty, lastElement, lastIndexOf, lastIndexOf, remove, remove, removeAll, removeAllElements, removeElement, removeElementAt, removeRange, retainAll, set, setElementAt, setSize, size, subList, toArray, toArray, toString, trimToSize |
从类 java.util.AbstractList 继承的方法 |
---|
iterator, listIterator, listIterator |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
从接口 java.util.List 继承的方法 |
---|
iterator, listIterator, listIterator |
构造方法详细信息 |
---|
Stack
public Stack()
- 创建一个空堆栈。
方法详细信息 |
---|
push
public E push(E item)
-
把项压入堆栈顶部。其作用与下面的方法完全相同:
addElement(item)
-
- 参数:
-
item
- 压入堆栈的项。 - 返回:
-
item
参数。 - 另请参见:
-
Vector.addElement(E)
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
表示此对象不在堆栈中。