本文编写于 938 天前,最后修改于 938 天前,其中某些信息可能已经过时。
Java Stack学习使用
- 栈是Vector的一个子类,它实现了一个标准的后进先出的栈
- Vector 类实现了一个动态数组 ,主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。
Stack与哪些方法
序号 | 方法描述 |
---|---|
1 | boolean empty() 测试堆栈是否为空。 |
2 | Object peek( ) 查看堆栈顶部的对象,但不从堆栈中移除它。 |
3 | Object pop( ) 移除堆栈顶部的对象,并作为此函数的值返回该对象。 |
4 | Object push(Object element) 把项压入堆栈顶部。 |
5 | int search(Object element) 返回对象在堆栈中的位置,以 1 为基数。 |
public class Test {
//显示入栈信息的方法
static void showpush(Stack<Integer> st, int a){
st.push(new Integer(a)); //入栈
System.out.println("push(" + a + ")");
System.out.println("stack: " + st);
}
//显示出栈信息的方法
static void showpop(Stack<Integer> st){
Integer a = st.pop(); //出栈
System.out.println("pop(" + a + ")");
System.out.println("stack: " + st);
}
public static void main(String[] args) {
Stack<Integer> st = new Stack<>();
showpush(st,10);
showpush(st,44);
showpush(st,32);
showpush(st,67);
System.out.println("--------------------------------------");
System.out.println("堆栈顶部的对象:"+st.peek()); //查看堆栈顶部的对象,但不从堆栈中移除它。
System.out.println("堆栈是否为空:"+st.empty()); //堆栈是否为空
System.out.println("10在堆栈中的位置"+st.search(10)); // 返回对象在堆栈中的位置,以 1 为基数。
showpop(st);
showpop(st);
showpop(st);
showpop(st);
try {
showpop(st);
}catch (Exception e){
System.out.println("Stack Emepy");
}
}
}
运行结果
push(10)
stack: [10]
push(44)
stack: [10, 44]
push(32)
stack: [10, 44, 32]
push(67)
stack: [10, 44, 32, 67]
--------------------------------------
堆栈顶部的对象:67
堆栈是否为空:false
10在堆栈中的位置4
pop(67)
stack: [10, 44, 32]
pop(32)
stack: [10, 44]
pop(44)
stack: [10]
pop(10)
stack: []
Stack Emepy