java基礎(chǔ)-List

ArrayList金砍、LinkedList恕稠、Vector的區(qū)別

1谱俭、List概述

List,就如圖名字所示一樣,是元素的有序列表。當(dāng)我們討論List時(shí)术陶,將其與Set作對(duì)比是一個(gè)很好的辦法,Set集合中的元素是無(wú)序且唯一的梧宫。

下圖是Collection的類繼承圖,從圖中你可以對(duì)本文所討論的知識(shí)有大致的了解.

圖1-1

2、ArrayList忌卤、LinkedList與Vector對(duì)比

從上圖可以看出三者都繼承了List接口驰徊。所使用的方法也十分相似棍厂。主要的區(qū)別在于實(shí)現(xiàn)方式的不同牺弹,所以對(duì)于不同的操作有不同的效率张漂。

ArrayList是一個(gè)可變大小的數(shù)組鹃锈,當(dāng)元素?cái)?shù)量達(dá)到數(shù)組容量上限時(shí)屎债,數(shù)組的容量會(huì)動(dòng)態(tài)的增長(zhǎng)盆驹,一般為+50%躯喇。由于ArrayList本質(zhì)上是一個(gè)數(shù)組廉丽,所以內(nèi)部的元素可以get(),set()方法直接訪問(wèn)正压。

LinkedList是一個(gè)雙鏈表焦履,在添加和刪除元素時(shí)擁有比ArrayList更好地性能嘉裤,但是在get() , set()方面弱于ArrayList,當(dāng)然當(dāng)數(shù)據(jù)量非常小時(shí)屑宠,比較便失去了意義。

Vector與arrayList相似妹孙,但其是一個(gè)強(qiáng)同步類,如果你的程序本身是線程安全的或者說(shuō)只有一個(gè)主線程嚣崭,沒(méi)有在多個(gè)線程之間共享一個(gè)對(duì)象雹舀,那么請(qǐng)選擇ArrayList说榆,他不會(huì)讓你失望签财。因?yàn)橛捎谝獙?shí)現(xiàn)強(qiáng)同步唱蒸,必然承擔(dān)效率的損耗神汹。

值得注意的是LinkedList還實(shí)現(xiàn)了Queue接口屁魏,該接口為我們提供了更多的方法蚁堤,包括offer() , poll() 立磁。

3唱歧、ArrayList與LinkList性能比較


測(cè)試代碼git地址:

JavaBase/per.pb.listText/src/text/ArrayListText.java



/*

* 測(cè)試結(jié)論總結(jié):當(dāng)指定下標(biāo)數(shù)據(jù)讀取几于,以及列表末端的插入和刪除ArrayList要優(yōu)于LinkedList

* 當(dāng)非末端的插入和刪除時(shí)沿彭,LinkedList要優(yōu)于ArrayList

*/


使用小技巧:

1喉刘、如果ArrayList的初始容量值特別小睦裳,你可以預(yù)估數(shù)據(jù)量的話廉邑,盡量給ArrayList或者Vector設(shè)置較大的一個(gè)初始容量值蛛蒙。這樣可以減少空間的開(kāi)銷窒典。

2课舍、ArrayList當(dāng)元素?cái)?shù)量超限時(shí)他挎,數(shù)組大小會(huì)增長(zhǎng)50%。Vector則增長(zhǎng)100%筹淫,所以如果對(duì)內(nèi)存要求較高呢撞,可以考慮選擇ArrayList。

3摧阅、一般建議使用ArrayList,線程問(wèn)題可以自定義調(diào)控绷蹲。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市比规,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌测秸,老刑警劉巖吃谣,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岗憋,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡关串,警方通過(guò)查閱死者的電腦和手機(jī)监徘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門凰盔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人户敬,你說(shuō)我怎么就攤上這事尿庐。” “怎么了抄瑟?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵皮假,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我严卖,道長(zhǎng)布轿,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任稠肘,我火速辦了婚禮项阴,結(jié)果婚禮上笆包,老公的妹妹穿的比我還像新娘。我一直安慰自己庵佣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著肛根,像睡著了一般。 火紅的嫁衣襯著肌膚如雪臼氨。 梳的紋絲不亂的頭發(fā)上芭届,一...
    開(kāi)封第一講書(shū)人閱讀 52,246評(píng)論 1 308
  • 那天喉脖,我揣著相機(jī)與錄音,去河邊找鬼舆蝴。 笑死题诵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的性锭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼草冈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼她奥!你這毒婦竟也來(lái)了瓮增?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤哩俭,失蹤者是張志新(化名)和其女友劉穎绷跑,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體凡资,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡砸捏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了隙赁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垦藏。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伞访,死狀恐怖掂骏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情咐扭,我是刑警寧澤芭挽,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站蝗肪,受9級(jí)特大地震影響袜爪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜薛闪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一辛馆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧豁延,春花似錦昙篙、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至袋狞,卻和暖如春焚辅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背苟鸯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工同蜻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人早处。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓湾蔓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親砌梆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子默责,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法贬循,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法傻丝,繼承相關(guān)的語(yǔ)法甘有,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,662評(píng)論 18 399
  • 在經(jīng)過(guò)一次沒(méi)有準(zhǔn)備的面試后葡缰,發(fā)現(xiàn)自己雖然寫了兩年的android代碼,基礎(chǔ)知識(shí)卻忘的差不多了忱反。這是程序員的大忌泛释,沒(méi)...
    猿來(lái)如癡閱讀 2,846評(píng)論 3 10
  • Collection接口 Collection接口是所有集合的祖先類。他有兩個(gè)構(gòu)造方法温算,一個(gè)無(wú)參構(gòu)造怜校,一個(gè)是帶Co...
    夜幕繁華閱讀 597評(píng)論 0 0
  • 秦朝滅亡后茄茁,項(xiàng)羽分封十八路諸侯,驅(qū)逐原諸侯國(guó)國(guó)王巩割,封自己偏愛(ài)的諸侯國(guó)將相和自己的親信將領(lǐng)為王裙顽,導(dǎo)致許多諸侯忿忿不平...
    至簡(jiǎn)君閱讀 834評(píng)論 7 8
  • 中俄大客機(jī)或2025年運(yùn)營(yíng) 空客350和波音787將迎強(qiáng)敵CR-929,據(jù)悉此次合作中PD-35發(fā)動(dòng)機(jī)將由中俄共同...
    yimo_43a4閱讀 751評(píng)論 0 0