Module java.base
Package java.util

Class Stack<E>

类型参数:
E - 组件元素的类型
所有已实现的接口:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess, SequencedCollection<E>

public class Stack<E> extends Vector<E>
Stack 类表示对象的后进先出(LIFO)堆栈。它通过五个操作扩展了 Vector 类,允许将向量视为堆栈。提供了通常的 pushpop 操作,以及一个方法用于查看堆栈顶部的项目,一个方法用于测试堆栈是否为空,以及一个方法用于在堆栈中搜索项目并发现它距离顶部有多远。

当堆栈首次创建时,它不包含任何项目。

更完整和一致的后进先出(LIFO)堆栈操作集由 Deque 接口及其实现提供,应优先使用该类。例如:

   
   Deque<Integer> stack = new ArrayDeque<Integer>();
自版本:
1.0
另请参阅:
  • Constructor Details

    • Stack

      public Stack()
      创建一个空的堆栈。
  • Method Details

    • 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 表示对象不在堆栈上。