ArrayList Vector的比較總結

2021-08-19 17:47:19 字數 805 閱讀 6930

首先看這兩類都實現list介面,而list介面一共有三個實現類,分別是arraylist、vector和linkedlist。list用於存放多個元素,

能夠維護元素的次序,並且允許元素的重複。

arraylist是最常用的list實現類,內部是通過陣列實現的,它允許對元素進行快速隨機訪問。

陣列的缺點是每個元素之間不能有間隔,

當陣列大小不滿足時需要增加儲存能力,就要講已經有陣列的資料複製到新的儲存空間中。

當從arraylist的中間位置插入或者刪除元素時,

需要對陣列進行複製、移動、代價比較高。

因此,它適合隨機查詢和遍歷,不適合插入和刪除。

vector與arraylist一樣,也是通過陣列實現的,不同的是它支援執行緒的同步,即某一時刻只有乙個執行緒能夠寫vector,

避免多執行緒同時寫而引起的不一致性,但實現同步需要很高的花費,因此,訪問它比訪問arraylist慢。

linkedlist是用鍊錶結構儲存資料的,很適合資料的動態插入和刪除,隨機訪問和遍歷速度比較慢。

另外,他還提供了list介面中沒有定義的方法,專門用於操作表頭和表尾元素,可以當作堆疊、佇列和雙向佇列使用。

關於arraylist和vector區別如下:

arraylist在記憶體不夠時預設是擴充套件50% + 1個,vector是預設擴充套件1倍。

vector提供indexof(obj, start)介面,arraylist沒有。

vector屬於執行緒安全級別的,但是大多數情況下不使用vector,因為執行緒安全需要更大的系統開銷。

oracle ,mysql總date的比較

date型別時間格式不同,是不相等的.哪怕是通一天 同一時刻。以下是mysql 格式相同的時候 select str to date 2011 09 21 y m d str to date 2011 09 21 y m d as rel結果 格式不相同的時候 select str to date ...

MYBATIS RESULTMAP的使用總結

resultmap是mybatis最強大的元素,它可以將查詢到的複雜資料 比如查詢到幾個表中資料 對映到乙個結果集當中。resultmap包含的元素 1 2 3 4 5 6 7 8 9 10 11 12 13 14 如果collection標籤是使用巢狀查詢,格式如下 以下以例項介紹resultma...

讀spingboot in action的總結

以前只看過sping in action這本書,當時是為了做ssm的專案,這本書看了因為沒做筆記了,結果現在腦袋裡什麼都忘記了,後來因為專案接觸spingboot,又看了spingboot in action這本書,打算把學習的知識總結一下,避免又忘記了,記得這本書是去年7月份讀完的,現在總結如下 ...