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
廣告