Java Stack類
堆棧是向量的一個子類,實現了一個標準的後進先出的堆棧。
堆棧隻定義了默認的構造函數,創建一個空棧。棧包括所有由矢量定義的方法,並增加了一些它自己。
Stack()
除了從它的父類Vector繼承的方法,堆棧定義以下方法:
SN | 方法及描述 |
---|---|
1 |
boolean empty() 堆棧是否為空測試。如果堆棧是空返回true,如果堆棧包含的元素返回false。 |
2 |
Object peek( ) 返回到堆棧頂部的元素,但不會將其刪除。 |
3 |
Object pop( ) 返回位於堆棧頂部的元素,在這個過程中除去它。 |
4 |
Object push(Object element) 元素推入堆棧。元素也返回。 |
5 |
int search(Object element) 搜索在堆棧元素。如果找到從堆棧的頂部的偏移被返回。否則,返回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