Stack类是Vector类的一个子类,它实现了标准的后进先出堆栈。
Stack类仅定义默认构造函数,该构造函数创建一个空堆栈。 Stack包含Vector定义的所有方法,并添加了几个自己的方法。
除了从父类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
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。