Java基礎複習-----集合Vector

Vector與ArrayList差很少,只不過Vector是線程安全,這也意味着性能會比ArraList差
一、定義    與ArrayList繼承、實現接口都同樣

2.內部使用數組對象進行存儲

使用無參構造方法初始化時,數組大小默認爲10 ;這一點與ArrayList不一樣,ArrayList使用無參構造方法初始化默認爲空數組,大小爲0;
數組

3.擴容字段  capacityIncrement    

正常狀況下擴容機制爲新的集合大小 = 原來的集合大小+capacityIncrement  ,這個與ArrayList不一樣;安全

ArrayList採用擴容機制爲 新的集合大小 = 原來的集合大小+  原來的集合大小/2  性能

 int newCapacity = oldCapacity + (oldCapacity >> 1);spa

4.部分方法    setSize()  改變Vector的集合大小,若是newSize大於Vector實際大小會進行Vector擴容,相反,會拋棄newSzie位置索引(包括newSize位置)以後的元素

 

Vector中大部分方法都如上使用synchronized關鍵字,進行線程同步,因此性能會比ArrayList差;由於ArrayList是非線程安全的;若是要使用線程安全的List,推薦使用 Collections.synchronizedList(list)內部也使用synchronized關鍵字,只不過線程

synchronized鎖住的對象鎖,而不是方法;orm

相關文章
相關標籤/搜索