关于arraylist的扩容机制
ArrayList會(huì)自動(dòng)改變size的長度:
?首先,ArrayList定義了一個(gè)私有的未被序列化的數(shù)組elementData,用來存儲(chǔ)ArrayList的對(duì)象列表(注意只定義未初始):
private transient Object[] elementData;
? ??
? ?其次,以指定初始容量(Capacity)或把指定的Collection轉(zhuǎn)換為引用型數(shù)組后實(shí)例化elementData數(shù)組;如果沒有指定,則預(yù)置初始容量為10進(jìn)行
實(shí)例化。把私有數(shù)組預(yù)先實(shí)例化,然后通過copyOf方法覆蓋原數(shù)組,是實(shí)現(xiàn)自動(dòng)改變ArrayList的大小(size)的關(guān)鍵。
所以個(gè)人認(rèn)為ArrayList其實(shí)就是關(guān)于系統(tǒng)方法的組合。在我們追加對(duì)象時(shí),先計(jì)算容量,如果不夠,用拷貝的方法對(duì)原有的數(shù)組變量進(jìn)行賦值,指向新數(shù)組,同時(shí)size自增1。
轉(zhuǎn)載于:https://www.cnblogs.com/sfysuper/p/7678803.html
總結(jié)
以上是生活随笔為你收集整理的关于arraylist的扩容机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP为什么要三次握手和四次挥手
- 下一篇: 财付通密码忘了怎么办?不同密码找回方式不