首先看這兩類都實現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月份讀完的,現在總結如下 ...