真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ArrayList和LinkedList區(qū)別?看完秒懂~-創(chuàng)新互聯(lián)

工作中,大家是不是經(jīng)常分不清楚,什么時(shí)候用ArrayList,什么時(shí)候用LinkedList?

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到花山網(wǎng)站設(shè)計(jì)與花山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋花山地區(qū)。

所以我們應(yīng)該弄清楚ArrayList和LinkedList之間的區(qū)別,然后才知道工作中該如何選型。

一、ArrayList和LinkedList查詢之間的區(qū)別

首先,從名字就可以看出,ArrayList和LinkedList的區(qū)別,ArrayList是基于數(shù)組的,LinkedList是基于鏈表的。

從這一點(diǎn),我們可以推理出來(lái),ArrayList適合查詢,LinkedList適合插入,但是這只是一個(gè)廣泛的結(jié)論,我們應(yīng)該了解的更細(xì)致一點(diǎn)。

比如,對(duì)于ArrayList,它真正的優(yōu)點(diǎn)是按下標(biāo)查詢?cè)?,相比于LinkedList,LinkedList也可以按下標(biāo)查詢?cè)?,但是LinkedList需要對(duì)底層鏈表進(jìn)行遍歷,才能找到指定下標(biāo)的元素,而ArrayList不用,所以這是ArrayList的優(yōu)點(diǎn)。

但是,如果我們討論的是獲取第一個(gè)元素,或最后一個(gè)元素,ArrayList和LinkedList在性能上是沒(méi)有區(qū)別的,因?yàn)長(zhǎng)inkedList中有兩個(gè)屬性分別記錄了當(dāng)前鏈表中的頭結(jié)點(diǎn)和尾結(jié)點(diǎn),并不需要遍歷鏈表。

以上,是對(duì)于ArrayList和LinkedList在查詢方面的區(qū)別。

二、ArrayList和LinkedList插入之間的區(qū)別

我們?cè)賮?lái)研究一下在插入方面的區(qū)別:

ArrayList可以插入到指定下標(biāo)位置,或者數(shù)組末尾,這種插入普通情況下是很快的,但是如果某次插入操作觸發(fā)了擴(kuò)容,那么本次插入就增加了額外的擴(kuò)容成本。

對(duì)于LinkedList,如果是插在鏈表的頭部或者是尾部都是很快的,因?yàn)長(zhǎng)inkedList中有單獨(dú)的屬性記錄的鏈表的頭結(jié)點(diǎn)和尾結(jié)點(diǎn),不過(guò),如果是插在指定下標(biāo)位置,那么就需要遍歷鏈表找到指定位置,從而降低了效率。

但是,使用LinkedList是不用擔(dān)心擴(kuò)容問(wèn)題的,鏈表是不需要擴(kuò)容的。

綜上:

1.默認(rèn)情況下,比如調(diào)用ArrayList和LinkedList的add(e)方法,都是插入在最后,如果這種操作比較多,那么就用LinkedList,因?yàn)椴簧婕暗綌U(kuò)容。

2.如果調(diào)用ArrayList和LinkedList的add(index, e)方法比較多,就要具體考慮了,因?yàn)锳rrayList可能會(huì)擴(kuò)容,LinkedList需要遍歷鏈表,這兩種到底哪種更快,是沒(méi)有結(jié)論的,得具體情況具體分析。

3.還有,如果是插入場(chǎng)景比較少,但經(jīng)常需要查詢的話,查詢分兩種,第一種就是普通遍歷,也就是經(jīng)常需要對(duì)List中的元素進(jìn)行遍歷,那么這兩種是區(qū)別不大的,遍歷鏈表和遍歷數(shù)組的區(qū)別,第二種就是經(jīng)常需要按指定下標(biāo)獲取List中的元素,如果這種情況如果比較多,那么就用ArrayList

以上,是對(duì)ArrayList和LinkedList在查詢和插入之間的分析和對(duì)比。

大家如果還有其他對(duì)比思路或想法,可留言進(jìn)行討論。

另外,LinkedList還有一個(gè)特殊功能,LinkedList可以當(dāng)做雙端隊(duì)列使用,這個(gè)是ArrayList不具備的。

這一點(diǎn)從源碼也是看得出來(lái)的,ArrayList和LinkedList都實(shí)現(xiàn)了List接口,但是LinkedList還額外實(shí)現(xiàn)了Deque接口。

這個(gè)問(wèn)題也是阿里面試的真題,希望大家有所收獲,下面給大家分享大廠面試真題。歡迎掃下方名片來(lái)領(lǐng)取

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


本文題目:ArrayList和LinkedList區(qū)別?看完秒懂~-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://weahome.cn/article/dppssi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部