Java中ArrayList槽惫、Vector周叮、LinkedList三者的異同點(diǎn)

一、ArrayList
ArrayList是一個(gè)可以處理變長(zhǎng)數(shù)組的類型界斜,這里不局限于“數(shù)”組仿耽,ArrayList是一個(gè)泛型類,可以存放任意類型的對(duì)象各薇。顧名思義项贺,ArrayList是一個(gè)數(shù)組列表,因此其內(nèi)部是使用一個(gè)數(shù)組來(lái)存放對(duì)象的峭判,因?yàn)镺bject是一切類型的父類开缎,因而ArrayList內(nèi)部是有一個(gè)Object類型的數(shù)組類存放對(duì)象。ArrayList類常用的方法有add()林螃、clear()奕删、get()、indexOf()疗认、remove()完残、sort()、toArray()横漏、toString()等等谨设,同時(shí)ArrayList內(nèi)部有一個(gè)私有類實(shí)現(xiàn)Iterator接口,因此可以使用iterator()方法得到ArrayList的迭代器绊茧,同時(shí)铝宵,還有一個(gè)私有類實(shí)現(xiàn)了ListIterator接口,因此ArrayList也可以調(diào)用listIterator()方法得到ListIterator迭代器。

由于ArrayList是依靠數(shù)組來(lái)存放對(duì)象的鹏秋,只不過(guò)封裝起來(lái)了而已尊蚁,因此其一些查找方法的效率都是O(n),跟普通的數(shù)組效率差不多侣夷,只不過(guò)這個(gè)ArrayList是一個(gè)可變”數(shù)組“横朋,并且可以存放一切指定的對(duì)象。

另外百拓,由于ArrayList的所有方法都是默認(rèn)在單一線程下進(jìn)行的琴锭,因此ArrayList不具有線程安全性。若想在多線程下使用衙传,應(yīng)該使用Colletions類中的靜態(tài)方法synchronizedList()對(duì)ArrayList進(jìn)行調(diào)用即可决帖。

二、LinkedList
LinkedList可以看做為一個(gè)雙向鏈表蓖捶,所有的操作都可以認(rèn)為是一個(gè)雙向鏈表的操作地回,因?yàn)樗鼘?shí)現(xiàn)了Deque接口和List接口。同樣俊鱼,LinkedList也是線程不安全的刻像,如果在并發(fā)環(huán)境下使用它,同樣用Colletions類中的靜態(tài)方法synchronizedList()對(duì)LinkedList進(jìn)行調(diào)用即可并闲。

在LinkedList的內(nèi)部實(shí)現(xiàn)中细睡,并不是用普通的數(shù)組來(lái)存放數(shù)據(jù)的,而是使用結(jié)點(diǎn)<Node>來(lái)存放數(shù)據(jù)的帝火,有一個(gè)指向鏈表頭的結(jié)點(diǎn)first和一個(gè)指向鏈表尾的結(jié)點(diǎn)last溜徙。不同于ArrayList只能在數(shù)組末尾添加數(shù)據(jù),LinkList可以很方便在鏈表頭或者鏈表尾插入數(shù)據(jù)犀填,或者在指定結(jié)點(diǎn)前后插入數(shù)據(jù)萌京,還提供了取走鏈表頭或鏈表尾的結(jié)點(diǎn),或取走中間某個(gè)結(jié)點(diǎn)宏浩,還可以查詢某個(gè)結(jié)點(diǎn)是否存在知残。add()方法默認(rèn)在鏈表尾部插入數(shù)據(jù)”茸總之求妹,LinkedList提供了大量方便的操作方法,并且它的插入或增加等方法的效率明顯高于ArrayList類型佳窑,但是查詢的效率要低一點(diǎn)制恍,因?yàn)樗且粋€(gè)雙向鏈表。

因此神凑,LinkedList與ArrayList最大的區(qū)別是LinkedList更加靈活净神,并且部分方法的效率比ArrayList對(duì)應(yīng)方法的效率要高很多何吝,對(duì)于數(shù)據(jù)頻繁出入的情況下,并且要求操作要足夠靈活鹃唯,建議使用LinkedList爱榕;對(duì)于數(shù)組變動(dòng)不大,主要是用來(lái)查詢的情況下坡慌,可以使用ArrayList黔酥。

三、Vector
Vector也是一個(gè)類似于ArrayList的可變長(zhǎng)度的數(shù)組類型洪橘,它的內(nèi)部也是使用數(shù)組來(lái)存放數(shù)據(jù)對(duì)象的跪者。值得注意的是Vector與ArrayList唯一的區(qū)別是,Vector是線程安全的熄求,即它的大部分方法都包含有關(guān)鍵字synchronized渣玲,因此,若對(duì)于單一線程的應(yīng)用來(lái)說(shuō)弟晚,最好使用ArrayList代替Vector柜蜈,因?yàn)檫@樣效率會(huì)快很多(類似的情況有StringBuffer與StringBuilder);而在多線程程序中指巡,為了保證數(shù)據(jù)的同步和一致性,可以使用Vector代替ArrayList實(shí)現(xiàn)同樣的功能隶垮。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末藻雪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子狸吞,更是在濱河造成了極大的恐慌勉耀,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹋偏,死亡現(xiàn)場(chǎng)離奇詭異便斥,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)威始,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門枢纠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人黎棠,你說(shuō)我怎么就攤上這事晋渺。” “怎么了脓斩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵木西,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我随静,道長(zhǎng)八千,這世上最難降的妖魔是什么吗讶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮恋捆,結(jié)果婚禮上照皆,老公的妹妹穿的比我還像新娘。我一直安慰自己鸠信,他們只是感情好纵寝,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著星立,像睡著了一般爽茴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绰垂,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天室奏,我揣著相機(jī)與錄音,去河邊找鬼劲装。 笑死,一個(gè)胖子當(dāng)著我的面吹牛占业,可吹牛的內(nèi)容都是我干的绒怨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼谦疾,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼南蹂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起念恍,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤六剥,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后峰伙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體疗疟,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年瞳氓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了策彤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匣摘,死狀恐怖锅锨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恋沃,我是刑警寧澤必搞,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站囊咏,受9級(jí)特大地震影響恕洲,放射性物質(zhì)發(fā)生泄漏塔橡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一霜第、第九天 我趴在偏房一處隱蔽的房頂上張望葛家。 院中可真熱鬧,春花似錦泌类、人聲如沸癞谒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)弹砚。三九已至,卻和暖如春枢希,著一層夾襖步出監(jiān)牢的瞬間桌吃,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工苞轿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茅诱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓搬卒,卻偏偏與公主長(zhǎng)得像瑟俭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子契邀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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