Java Stack类
Stack是Vector的子类,实现了标准的后进先出的堆栈。
Stack只定义了默认构造函数,用于创建一个空的堆栈。Stack包含了所有Vector定义的方法,并添加了一些自己的方法。
Stack()
除了从其父类Vector继承的方法外,Stack还定义了以下方法 –
编号 | 方法和描述 |
---|---|
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