本文编写于 1071 天前,最后修改于 1071 天前,其中某些信息可能已经过时。

Java Stack学习使用

  • 栈是Vector的一个子类,它实现了一个标准的后进先出的栈
  • Vector 类实现了一个动态数组 ,主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。

Stack与哪些方法

序号方法描述
1boolean empty() 测试堆栈是否为空。
2Object peek( ) 查看堆栈顶部的对象,但不从堆栈中移除它。
3Object pop( ) 移除堆栈顶部的对象,并作为此函数的值返回该对象。
4Object push(Object element) 把项压入堆栈顶部。
5int 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


END