堆栈(stack)是线性表的一种,只能在该线性表的表尾进行插入、获取或删除的操作。该线性表具有LIFO(后进先出)的特点,那么Java中如何实现这一功能呢,呵呵呵,Java已经为我们提供了API——Stack,Stack类继承Vector类。下面通过一个例子来认识一下该API:
import java.util.Stack;
public class TestStack {
public static void main(String[] args) {
Stack<String> stack = new Stack<String>();
stack.push("a");//将数据压入堆栈顶部,其作用于下面addElement一样
stack.addElement("b");
stack.push("c");
stack.push("d");
stack.push("e");
if(!stack.empty()){//判断堆栈是否为空
System.out.println(stack.peek());//输出e。获取堆栈顶部的对象(Vector 对象的最后一项),但不从堆栈中移除该对象,如果堆栈为空,则抛出EmptyStackException异常
System.out.println(stack.pop()); //输出e。获取堆栈顶部的对象(Vector 对象的最后一项),并从堆栈顶部移除该对象,如果堆栈为空,则抛出EmptyStackException异常
System.out.println(stack.pop()); //输出d。
System.out.println(stack.search("c"));//获取指定对象在堆栈中的位置,以 1 为基数,如果没有则返回-1
}
}
}