vector和arraylist有一定的不同
int newcapacity = oldcapacity + ((capacityincrement > 0) ? capacityincrement : oldcapacity);
從這一句我們可以看出
(增長容量)capacityincrement > 0 增長倍數 :陣列數量(舊容量)+ 增長容量
( 增長容量)capacityincrement<=0 增長倍數 :陣列數量(舊容量)+陣列數量 也就2倍 x2
而arraylist增長的倍數為1.5倍
vector是執行緒安全的,可以看到方法上都是直接通過synchronized進行同步的。
vector也是內部也是陣列實現
vector增長方法和arraylist大同小異,增長容量大於0則直接,舊容量+增長容量,當增長容量小於等於0,擴容為舊容量的2倍
vector是執行緒安全性,內部使用synchronized同步方法,簡單粗暴,缺點效率低。
由於vector使用不多,這裡只學習內部原理。
JDK原始碼閱讀 Vector實現
vector同樣繼承自abstractlist,與arraylist linedlist一樣,是list的一種實現 與arraylist一樣,也是使用物件陣列儲存元素 protected object elementdata 記錄元素的個數 protected intelementcount 每次動...
Vector原始碼分析
與arraylist一樣,vector的底層也是使用陣列elementdata進行儲存資料 protected object elementdata 當前elementdata陣列中元素的個數 protected int elementcount 當前elementdata陣列進行擴容的增量 pro...
Vector原始碼分析
說實話vector在工作中用的比較少,至少我沒有用到過。vector在面試中經常用來和arraylist進行比較,但凡知道 vector的都應該知道vector是執行緒安全的,而arraylist是執行緒不安全的,究其原因其實就是因為vector在增 改 刪操方法加了synchronized,利用鎖...