有參構造器ArrayList list = new ArrayList();底層的實現方式
傳入集合的有參構造器ArrayList list = new ArrayList(8);底層實現
也就說明,無參構造器,一開始得到的集合是空的
擴容list.add(new Book(“紅樓夢”,30,“曹雪芹”));底層的實現
首先走到這里
然后再進入ensureCapacityInternal(size + 1)判斷是否需要擴容
進入calculateCapacity(Object[] elementData, int minCapacity)確定擴容的容量
再進入這個方法,確定添加數據
最后才進行擴容
若有參構造時,傳的數據是0,那么,擴容還是會按照0擴容,不會按照無參時考慮是否大于10,來擴容。即擴容后elementData數組容量依次為0、newCapacity=1、newCapacity=2、newCapacity=(2+2/2)=3、newCapacity=(3+3/2)=4,newCapacity=(4+4/2)=6,即第六次添加數據不擴容,第七次添加還用擴容…
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
網頁題目:四、ArrayList底層源碼詳解-創新互聯
本文地址:http://vcdvsql.cn/article10/cdeego.html
成都網站建設公司_創新互聯,為您提供品牌網站設計、微信公眾號、做網站、關鍵詞優化、網頁設計公司、建站公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯