Vector和ArrayList

VectorArrayList VectorArrayList在使用上非常相似,都可用來表示一組數量可變的對象應用的集合,並且可以隨機地訪問其中的元素。 
Vector
的方法都是同步的(Synchronized),是線程安全的(thread-safe),而ArrayList的方法不是,由於線程的同步必然要影響性能,因此,ArrayList的性能比Vector好。
VectorArrayList中的元素超過它的初始大小時,Vector會將它的容量翻倍,ArrayList只增加50%的大小,這樣,ArrayList就有利於節約內存空間

ArrayList
Vector在從指定位置取得元素,從容器的末尾增加和刪除元素都非常的有效,所有的這些操作都能在一個常數級的時間(O(1))內完成。但是從一個其他的位置增加和刪除一個元素就顯得頗爲費時,差不多需要的時間爲O(n-i),這裏的n代表元素個數,i代表要增加和刪除的元素所在的位置。這些操作需花費更多的時間,因爲你需要挨個移動i和更高

位置的元素。

這意味着,如果你取得一個元素,或者從數組末尾增加或刪除一個元素的話,隨便你使用VectorArrayList。如果你想要對數組內容做其他操作的話,那麼就爲自己好另一個容器吧。比喻說,LinkedList可以在常數級時間(O(1))內爲任意一個位置的元素增加和刪除。但是,取得一個元素,會稍微慢一點,時間要用O(i) ,這個i是元素的位置。通過ArrayList也是很簡單的,因爲你可以簡單使用一個索引,而不是構造一個iterator LinkedList也爲每個插入的元素建立一個內部對象。所以,你也必須知道,同時產生了垃圾對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章