1:Stack简单介绍
Stack是栈。它的特性是:先进后出(FILO, First In Last Out)。
Stack类表示后进先出(LIFO)的对象堆栈。它通过五个操作对类Vector进行了扩展 ,允许将向量视为堆栈。它提供了通常的push和pop操作,以及取堆栈顶点的peek方法、测试堆栈是否为空的empty方法、在堆栈中查找项并确定到堆栈顶距离的search方法。
java中关于Stack的实现其实非常的不妥当为什么?
首先因为栈的实现继承了Vector,目的是为了复用方法,但是Vector的实现是基于数组的实现,而栈的使用场景大多是出栈入栈等插入或者删除元素的操作,从设计上来讲栈就不是用来做数据查询之用,从底层数据结构的层面来说链表的方式更适合用来实现栈。
既然是栈(栈只能在栈顶添加或删除元素),复用这种在指定位置添加元素的方法的意义何在?
所以Stack的实现是值得质疑的一件事情,如果我们要用栈的数据结构,可以选择用LinkedList来实现,或者用Deque也可以,效率高,接口设计也比较的完美
看一下Stack的集成关系
网友评论