Java Stack 类



介绍

Stack 是 Vector 的一个子类,它实现了标准的后进先出栈。

Stack 只定义了默认构造函数,它创建一个空栈。Stack 包含 Vector 定义的所有方法,并添加了一些自己的方法。

Java Stack 类表示对象的后进先出 (LIFO) 栈。

  • 当第一次创建栈时,它不包含任何项目。

  • 在这个类中,最后插入的元素首先被访问。

类声明

以下是java.util.Stack 类的声明:

public class Stack<E>
   extends Vector<E>

类构造函数

序号 构造函数 & 描述
1

Stack()

此构造函数创建一个空栈。

类方法

序号 方法 & 描述
1 boolean empty()

此方法测试此栈是否为空。

2 E peek()

此方法查看此栈顶部的对象,而不将其从栈中移除。

3 E pop()

此方法移除此栈顶部的对象,并将其作为此函数的值返回。

4 E push(E item)

此方法将一个项目压入此栈的顶部。

5 int search(Object o)

此方法返回对象在此栈上的基于 1 的位置。

继承的方法

此类继承自以下类的方法:

  • java.util.Vector
  • java.util.Collection
  • java.util.Object
  • java.util.List

示例

以下程序说明了 Stack 集合支持的几种方法:

import java.util.*;
public class StackDemo {

   static void showpush(Stack st, int a) {
      st.push(new Integer(a));
      System.out.println("push(" + a + ")");
      System.out.println("stack: " + st);
   }

   static void showpop(Stack st) {
      System.out.print("pop -> ");
      Integer a = (Integer) st.pop();
      System.out.println(a);
      System.out.println("stack: " + st);
   }

   public static void main(String args[]) {
      Stack st = new Stack();
      System.out.println("stack: " + st);
      showpush(st, 42);
      showpush(st, 66);
      showpush(st, 99);
      showpop(st);
      showpop(st);
      showpop(st);
      try {
         showpop(st);
      } catch (EmptyStackException e) {
         System.out.println("empty stack");
      }
   }
}

这将产生以下结果:

输出

stack: [ ]
push(42)
stack: [42]
push(66)
stack: [42, 66]
push(99)
stack: [42, 66, 99]
pop -> 99
stack: [42, 66]
pop -> 66
stack: [42]
pop -> 42
stack: [ ]
pop -> empty stack
广告