Java - 堆栈类


Java - 堆栈类

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

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

Stack( )

除了从其父类Vector继承的方法之外,Stack还定义了以下方法

Sr.No. 方法和描述
1

布尔值空()

测试此堆栈是否为空。如果堆栈为空,则返回true;如果堆栈包含元素,则返回false。

2

对象窥视()

返回堆栈顶部的元素,但不删除它。

3

对象pop()

返回堆栈顶部的元素,并在此过程中将其删除。

4

对象推送(对象元素)

将元素推入堆栈。元素也被退回。

int search(对象元素)

搜索堆栈中的元素。如果找到,则返回其从堆栈顶部的偏移量。否则,返回.1。

实例

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

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