定義
Stack繼承自Vector
Vector
自由伸縮的矢量數(shù)組隊列
- 定義
可以看出Vector的繼承結(jié)構(gòu)層次和ArrayList一樣懂酱,都提供了List接口撇他,隨機訪問的方法茄猫,克隆,序列化困肩。
- 特點
Vector的實現(xiàn)和ArrayList的實現(xiàn)基本相同划纽,如緩沖數(shù)據(jù),擴容等锌畸;主要不同點是對于可能發(fā)生的修改Vector結(jié)構(gòu)的并發(fā)操作都是同步方法synchronized勇劣,由于存在大量的同步方法,同步粒度比較粗潭枣,效率很低比默,可以使用并發(fā)集合的數(shù)據(jù)結(jié)構(gòu)來代替。
但是只重新實現(xiàn)了序列化方法盆犁,使用默認(rèn)反序列化方法
Stack的實現(xiàn)
- Stack棧頂位于Vector緩沖數(shù)組的末尾命咐。
- 底層基于數(shù)組的Stack的實現(xiàn)借助父類Vector的方法實現(xiàn)起來比較簡單,同時注意到更改Stack結(jié)構(gòu)的操作都被實現(xiàn)為同步synchronized方法谐岁,所以功能上是線程安全的醋奠,但是效率上是很低。
- 如果不考慮線程安全的問題也可以考慮使用LinkedList(基于鏈表實現(xiàn)的Stack接口)