list集合添加元素 為什么說(shuō)ArrayList在增加和刪除元素效率較低?
為什么說(shuō)ArrayList在增加和刪除元素效率較低?ArrayList類(lèi)實(shí)現(xiàn)list接口,ArrayList類(lèi)實(shí)現(xiàn)的list集合使用數(shù)組結(jié)構(gòu)保存對(duì)象。數(shù)組結(jié)構(gòu)的優(yōu)點(diǎn)是便于快速隨機(jī)訪(fǎng)問(wèn)集合。如果我們經(jīng)常
為什么說(shuō)ArrayList在增加和刪除元素效率較低?
ArrayList類(lèi)實(shí)現(xiàn)list接口,ArrayList類(lèi)實(shí)現(xiàn)的list集合使用數(shù)組結(jié)構(gòu)保存對(duì)象。
數(shù)組結(jié)構(gòu)的優(yōu)點(diǎn)是便于快速隨機(jī)訪(fǎng)問(wèn)集合。如果我們經(jīng)常需要根據(jù)索引位置訪(fǎng)問(wèn)集合中的對(duì)象,那么使用ArrayList類(lèi)實(shí)現(xiàn)的列表集合會(huì)更有效。
數(shù)組結(jié)構(gòu)的缺點(diǎn)是在指定索引位置插入對(duì)象和在指定索引位置刪除對(duì)象的速度很慢。如果經(jīng)常需要在列表集合的指定索引位置插入對(duì)象或刪除列表集合的指定索引位置的對(duì)象,則使用ArrayList類(lèi)實(shí)現(xiàn)的列表集合的效率較低,插入或刪除對(duì)象的索引位置越小,使用率越低,因?yàn)楫?dāng)一個(gè)對(duì)象被插入到指定的索引位置時(shí),在指定索引位置和之后的所有對(duì)象都將向后移動(dòng)一位,如圖1所示。
刪除具有指定索引位置的對(duì)象時(shí),指定索引位置之后的所有對(duì)象將向前移動(dòng)一位,如圖2所示。
如果指定的索引位置后有大量對(duì)象,將嚴(yán)重影響集合的運(yùn)行效率。