Java Stack 类

栈是Vector的一个子类,它实现了一个标准的后进先出的栈。
堆栈只定义了默认构造函数,用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。
栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。Java的栈中存储 基本类型,引用类型变量,方法
栈中主要存放一些基本类型的变量(int, short, long, byte, float, double, boolean, char)和对象句柄。

除了由Vector定义的所有方法,自己也定义了一些方法:
boolean empty() 测试堆栈是否为空。
Object peek( ) 查看堆栈顶部的对象,但不从堆栈中移除它。
Object pop( ) 移除堆栈顶部的对象,并作为此函数的值返回该对象。
Object push(Object element) 把项压入堆栈顶部。
int search(Object element) 返回对象在堆栈中的位置,以 1 为基数。

Java实现栈

Java实现动态栈
通过链表实现栈,我们可以想象有个栈顶节点,当入栈的时候,原先的栈顶节点成为新的节点后继节点,新的节点成为新的栈顶节点。同理,出栈的时候,讲栈顶节点弹出,第二个节点成为新的栈顶节点。

Java 实现静态栈
通过数组实现栈,我们可以想象栈顶索引,当入栈的时候,栈顶索引加一,赋值给栈顶。当出栈的时候,返回栈顶的值,并且栈顶索引减一。