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