ArrayList 的实现原理
ArrayList ?是List接口的可變數(shù)組的實(shí)現(xiàn)。實(shí)現(xiàn)了所有可選列表的操作,并包括null值在內(nèi)的所有元素。此類還提供了一些方法來操作內(nèi)部用來存儲列表的數(shù)組大小。
ArrayList 的是實(shí)現(xiàn):
對于ArrayList而言,他實(shí)現(xiàn)List接口、底層使用數(shù)組保存所有元素,其操作基本上是對數(shù)組的操作。
?
?
LinkedList ?實(shí)現(xiàn)了List接口,但是它執(zhí)行和插入操作時(shí)比ArrayList更加高效,因?yàn)樗腔阪湵?#xff0c;基于鏈表也決定了它在隨機(jī)訪問方面要比ArrayList遜色一些。
除此之外,LinkedLis還提供一些可以使其作為棧、隊(duì)列、雙端隊(duì)列的方法,這些方法中彼此之間只是名稱的區(qū)別,以使得這些名字在等特定的上下文中顯得更加合適。、
?
?
?
ArrayList(訪問快速,修改慢)的底層使用的是數(shù)組存元素,數(shù)組的大小說是自增的,(插入元素,由于不知道數(shù)組容量,數(shù)組要復(fù)制到一個(gè)新的數(shù)組中,)。
LinkedList (改快查慢)的底層是鏈表,通過節(jié)點(diǎn)直接將元素連接起來,每個(gè)節(jié)點(diǎn)包含前后節(jié)點(diǎn)的引用和節(jié)點(diǎn)存儲的值,
當(dāng)修改時(shí),插入一個(gè)新的元素,只需要修改前后節(jié)點(diǎn)的引用關(guān)系即可,
但訪問是,要遍歷節(jié)點(diǎn)來定位,所以訪問速度慢。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/chengbao/p/4839196.html
總結(jié)
以上是生活随笔為你收集整理的ArrayList 的实现原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求职准备
- 下一篇: iOS SQLite函数总结