在The javaPRogramming Language (Addison-Wesley, June 2000) 中Ken Arnold, James Gosling, 和 David Holmes 是這樣描述Vector的,它是更ArrayList類似的一個東西,所以從API的觀點來看,它們倆是很相似的。但是,它們之間還是有些微的差別的。
實際上,不管是ArrayList還是Vector,在它們內(nèi)部都是使用一個Array來保存數(shù)據(jù)的。編程過程中,在使用它們?nèi)魏我粋€的時候,你都需要記住這一點。你在往一個ArrayList或者Vector里插入一個元素的時候,假如內(nèi)部數(shù)組空間不夠了,這個對象(譯者按:指的是你使用的ArrayList或者Vector)就要擴展它的大小。Vector在默認(rèn)情況下是產(chǎn)生一個雙倍大小,而ArrayList增加50%的大小。只要你合理的使用這些類,你就可以結(jié)束你在增加新的元素的時候所付出的性能代價。把對象(譯者按:指的是你使用的ArrayList或者Vector)的初始化容量指定為你編程過程中所能用到的最大的容量總是最好的辦法。仔細的指定容量,你可以避免以后改變內(nèi)部Array容量,所要付出的代價。假如你并不知道到底有多少個數(shù)據(jù),當(dāng)是你知道數(shù)據(jù)的增長率,Vector確實有一點點優(yōu)勢,因為你可以指定增加值(譯者按,假如沒有猜錯的話,作者說的方法應(yīng)該是setSize(int newSize) Sets the size of this vector.)。