Java中的Vector與ArrayList的區別

2021-07-22 10:56:28 字數 688 閱讀 2996

首先看這兩類都實現list介面,而list介面一共有三個實現類,分別是arraylist、vector和linkedlist。list用於存放多個元素,能夠維護元素的次序,並且允許元素的重複。

1、arraylist 是最常用的list實現類,內部是通過陣列實現的,它允許對元素進行快速隨機訪問。陣列的缺點是每個元素之間不能有間隔,當陣列大小不滿足時需要增加儲存能力,就要將已經存在於陣列中的資料複製到新的儲存空間中。當從arraylist的中間位置插入或者刪除元素時,需要對陣列進行複製、移動、代價比較高。因此它適合隨機查詢和遍歷,不適合插入和刪除。

2、vector與arraylist一樣,也是通過陣列實現的,不同的是它支援執行緒的同步,即某一時刻只有乙個執行緒能夠寫vector,避免多執行緒同時寫而引起的不一致性,但是實現同步需要很高的費用,因此,訪問它比訪問arraylist慢。

不過這並不是什麼問題,對於現在的jvm來說,這兩個類在同步效能上的差異,甚至還不如每次跑測試的時候環境變化引起的差異大。按照主流,一般情況下,估計使用arraylist,如果有同步控制的需要,就可以選用vector,也可以用collection.synchronizedlist(list)來解決同步問題。

3、linkedlist內部使用鍊錶結構實現的,很適合資料的動態插入和刪除,隨機訪問和遍歷速度比較慢。另外,他還提供了list介面中沒有提供的方法,專門用於操作表頭和標為元素,可以當作堆疊,佇列和雙向佇列使用。

Java中Vector的特性以及與陣列的區別

vector與陣列最大區別在於,陣列物件建立之後長度就不能改變了,而vector的儲存空間可擴充。但注意,vector儲存型別必須是引用型別。vector的宣告格式一般是 vector 型別 變數名,預設容量為10。不指明元素型別也可以,但編譯時會出現 使用了未經檢查或不安全的操作 警告。可以使用迭...

java中vector 的用法 初級

開源共享 例子 vectorstudentname new vector 是什麼意思?例子解釋 1 vector是乙個集合,用陣列實現的。所以vector的資料結構是陣列。vector裡面包含的可以是int,string等任何型別,包括乙個自定義的物件,stuinfo是乙個自定義的物件。vector...

Java中Vector和ArrayList的區別

首先看這兩類都實現list介面,而list介面一共有三個實現類,分別是arraylist vector和linkedlist。list用於存放多個元素,能夠維護元素的次序,並且允許元素的重複。3個具體實現類的相關區別如下 arraylist是最常用的list實現類,內部是通過陣列實現的,它允許對元素...