Vector & ArrayList 的主要區別
阿新 • • 發佈:2018-12-02
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了。