Java学习总结:56(Stack子类)

Stack子类

Stack表示栈操作,栈也是一种动态对象数组,采用的是一种先进后出的数据结构形式,即在栈中最早保存的数据最后才会取出,而最后保存的数据可以最先取出。Stack类的定义如下:

public class Stack<E>extends Vector<E>

由上我们可以发现Stack类属于Vector的子类,但是在进行Stack类操作时不会使用Vector类定义的方法,主要使用Stack自己定义的方法。Stack类的常用方法如下:

No. 方法 类型 描述
1 public E public(E item) 普通 数据入栈
2 public E pop() 普通 数据出栈,如果栈中没有数据,则调用此方法会抛出空栈异常(EmptyStackException)

例:观察栈的操作

package Project.Study.Stack;

import java.util.Stack;

public class Test1 {
    public static void main(String[]args){
        Stack<String>all = new Stack<>();
        all.push("!!!");
        all.push("World ");
        all.push("Hello ");
        System.out.print(all.pop());
        System.out.print(all.pop());
        System.out.println(all.pop());
        System.out.println(all.pop());//EmptyStackException
    }
}
//结果:
//Hello World !!!
//Exception in thread "main" java.util.EmptyStackException
//	at java.base/java.util.Stack.peek(Stack.java:102)
//	at java.base/java.util.Stack.pop(Stack.java:84)
//	at Project.Study.Stack.Test1.main(Test1.java:14)

由上程序我们可以看到,当栈中没有数据时,再进行出栈操作则将会抛出"EmptyStackException"异常。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章