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"異常。