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