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