Stack栈操作
栈是一种先进后出的数据结构(例如玩具枪的弹夹),栈的基本操作形式如下:
在Java程序里面使用Stack来描述栈的操作,这个类的定义如下:
public class Stack<E>
extends Vector<E>
可以发现Stack是Vetor子类,但是使用的并不是Vector类之中所提供的方法,而是采用了如下两种方法:
- 入栈:public E push(E item)
- 出栈:public E pop()
范例:实现栈的操作
import java.util.Stack;
public class StackDemo {
public static void main(String[] args) {
Stack<String> all = new Stack<>();
all.push("A");
all.push("B");
all.push("C");
System.out.println(all.pop());
System.out.println(all.pop());
System.out.println(all.pop());
System.out.println(all.pop()); //EmptyStackException(空栈异常)
}
}
C
B
A
Exception in thread "main" java.util.EmptyStackException
at java.base/java.util.Stack.peek(Stack.java:101)
at java.base/java.util.Stack.pop(Stack.java:83)
at StackDemo.main(StackDemo.java:14)
通过此时的操作可以发现,所有数据保存之后将按照倒序进行弹出,如果栈已经空了,则会抛出空栈异常。