java.util.Vectorjava
相同點:隨機存取,可經過位置序號直接獲取數據。都是經過一個數組來存放元素。數組
不一樣點:Vector是線程安全的,方法有synchronized關鍵字修飾。安全
Vector默認的增加策略是每次在原容量的基礎上x2。併發
Vector實現了本身的iterator,爲了保證併發線程安全的共享一個Vector,開發者在next等方法中也加入了synchronized。this
public E next() { synchronized (Vector.this) { checkForComodification(); int i = cursor; if (i >= elementCount) throw new NoSuchElementException(); cursor = i + 1; return elementData(lastRet = i); } }
這裏synchronized修飾的是Vector.this對象自己,而不是iterator本身,這樣多個線程使用iterator操做Vector時,就能夠保證線程的安全。線程
惟一的區別就是在使用本身的Vector時,加上了synchronized關鍵字。code
Stack類繼承自Vector,stack的實現不止一種方式,好比LinkedList。java中在Vector基礎上實現了一個Stack。實現的想法也很簡單,就是在數組的末尾push和pop。對象