定义
Stack继承自Vector
Vector
自由伸缩的矢量数组队列
- 定义
可以看出Vector的继承结构层次和ArrayList一样,都提供了List接口,随机访问的方法,克隆,序列化。
- 特点
Vector的实现和ArrayList的实现基本相同,如缓冲数据,扩容等;主要不同点是对于可能发生的修改Vector结构的并发操作都是同步方法synchronized,由于存在大量的同步方法,同步粒度比较粗,效率很低,可以使用并发集合的数据结构来代替。
但是只重新实现了序列化方法,使用默认反序列化方法
Stack的实现
- Stack栈顶位于Vector缓冲数组的末尾。
- 底层基于数组的Stack的实现借助父类Vector的方法实现起来比较简单,同时注意到更改Stack结构的操作都被实现为同步synchronized方法,所以功能上是线程安全的,但是效率上是很低。
- 如果不考虑线程安全的问题也可以考虑使用LinkedList(基于链表实现的Stack接口)