本文為大家介紹vector,arraylist,linkedlist區(qū)別(arraylist,vector 等的區(qū)別),下面和小編一起看看詳細(xì)內(nèi)容吧。
home 經(jīng)驗(yàn)arraylist 和vector 的區(qū)別
arraylist和vector的區(qū)別
兩者都有一個(gè)初始容量大小,使用線性連續(xù)存儲(chǔ)空間;當(dāng)vector 或arraylist 中的元素超過(guò)其初始大小時(shí),vector 會(huì)將其容量增加一倍,而arraylist 僅增加50% 的大小,因此arraylist 有助于節(jié)省內(nèi)存空間。
vector的方法都是同步的,線程安全的,而arraylist的方法不是。由于線程的同步必然會(huì)影響性能,所以arraylist的性能要優(yōu)于vector。如果多個(gè)線程會(huì)訪問(wèn)集合,最好使用vector,因?yàn)槲覀儾恍枰ニ伎己途帉懢€程安全的代碼。
arraylist是最常用的list實(shí)現(xiàn)類。它通過(guò)數(shù)組在內(nèi)部實(shí)現(xiàn),允許快速隨機(jī)訪問(wèn)元素。數(shù)組的缺點(diǎn)是每個(gè)元素之間不能有間隔。當(dāng)數(shù)組的大小不夠時(shí),需要增加存儲(chǔ)容量,將數(shù)組中已經(jīng)存在的數(shù)據(jù)復(fù)制到新的存儲(chǔ)空間中。從arraylist的中間位置插入或刪除元素時(shí),需要復(fù)制和移動(dòng)數(shù)組,成本比較高。因此,它適合隨機(jī)查找和遍歷,不適合插入和刪除。
好了,vector,arraylist,linkedlist區(qū)別(arraylist,vector 等的區(qū)別)的介紹到這里就結(jié)束了,想知道更多相關(guān)資料可以收藏我們的網(wǎng)站。