1. 程式人生 > >各種集合如:Vector & ArrayList 等,小總結(小區別)

各種集合如:Vector & ArrayList 等,小總結(小區別)

Vector & ArrayList 的主要區別 
1) 同步性:Vector是執行緒安全的,也就是說是同步的 ,而ArrayList 是執行緒序不安全的,不是同步的 數2。 
 2)資料增長:當需要增長時,Vector預設增長為原來一倍 ,而ArrayList卻是原來的50%  ,這樣,ArrayList就有利於節約記憶體空間。 
      如果涉及到堆疊,佇列等操作,應該考慮用Vector,如果需要快速隨機訪問元素,應該使用ArrayList 。

擴充套件知識:

1. Hashtable & HashMap 
Hashtable和HashMap它們的效能方面的比較類似 Vector和ArrayList,比如Hashtable的方法是同步的,而HashMap的不是。


2. ArrayList & LinkedList

ArrayList的內部實現是基於內部陣列Object[],所以從概念上講,它更象陣列,但LinkedList的內部實現是基於一組連線的記錄,所以,它更象一個連結串列結構,所以,它們在效能上有很大的差別:   
       從上面的分析可知,在ArrayList的前面或中間插入資料時,你必須將其後的所有資料相應的後移,這樣必然要花費較多時間,所以,當你的操作是在一列資料的後面新增資料而不是在前面或中間,並且需要隨機地訪問其中的元素時,使用ArrayList會提供比較好的效能; 而訪問連結串列中的某個元素時,就必須從連結串列的一端開始沿著連線方向一個一個元素地去查詢,直到找到所需的元素為止,所以,當你的操作是在一列資料的前面或中間新增或刪除資料,並且按照順序訪問其中的元素時,就應該使用LinkedList了。