課程
/后端開發(fā)
/Java
/Java入門第三季
請問這個是什么意思? ? 為什么要New一個ArrayList
2019-08-07
源自:Java入門第三季 4-9
正在回答
初始化,你可以理解成創(chuàng)建一個火車頭,不然沒有火車頭的話后面的車廂都接不上去
ArrayList源碼中最重要的就是數(shù)組的擴容,你知道數(shù)組一旦創(chuàng)建就不能改變?nèi)萘苛?,但是List集合可以隨便添加多少元素,那么用數(shù)組怎么實現(xiàn)list的呢,就是system.copy方法,復制!創(chuàng)建一個新的數(shù)組,默認長度是原數(shù)組的1.5倍,不夠再擴1.5倍,直到達到Integer.MAX_VALUE為止,然后把原數(shù)組復制到新數(shù)組,這個復制可以指定索引,就是你可以指定從哪兒開始復制,復制在什么位置。搞懂這個基本上arraylist的方法就全搞懂了,比如刪除Arr=[1,2,3,4,5]中的3就是把4后面的長度-3個元素復制到3的位置就完事了,如下。
System.arraycopy(Arr,?3,?Arr,?4,?size-3)
對不起,我解釋錯了,LinkList才是火車頭,new ArrayList()是創(chuàng)建一個地址,此時只是一個空指針,當調用add()方法的時候才會在堆內(nèi)存創(chuàng)建一個長度為10的數(shù)組,add達到數(shù)組容量上限就自動增長1.5倍,new ArrayList(5)帶了參數(shù)5,會初始化的時候就創(chuàng)建一個長度為5的數(shù)組。總之ArrayList實際上就是一個數(shù)組。為了這個問題我看了三天源碼!
qq_慕沐4213791 提問者
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
1 回答java的ArrayList類的問題
1 回答看了List ArrayList 的問題
4 回答List與Arraylist
1 回答 this.coursesToSelect = new ArrayList();
2 回答CourseToSelect = new ArrayList();
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2019-08-07
初始化,你可以理解成創(chuàng)建一個火車頭,不然沒有火車頭的話后面的車廂都接不上去
2019-08-14
ArrayList源碼中最重要的就是數(shù)組的擴容,你知道數(shù)組一旦創(chuàng)建就不能改變?nèi)萘苛?,但是List集合可以隨便添加多少元素,那么用數(shù)組怎么實現(xiàn)list的呢,就是system.copy方法,復制!創(chuàng)建一個新的數(shù)組,默認長度是原數(shù)組的1.5倍,不夠再擴1.5倍,直到達到Integer.MAX_VALUE為止,然后把原數(shù)組復制到新數(shù)組,這個復制可以指定索引,就是你可以指定從哪兒開始復制,復制在什么位置。搞懂這個基本上arraylist的方法就全搞懂了,比如刪除Arr=[1,2,3,4,5]中的3就是把4后面的長度-3個元素復制到3的位置就完事了,如下。
2019-08-14
對不起,我解釋錯了,LinkList才是火車頭,new ArrayList()是創(chuàng)建一個地址,此時只是一個空指針,當調用add()方法的時候才會在堆內(nèi)存創(chuàng)建一個長度為10的數(shù)組,add達到數(shù)組容量上限就自動增長1.5倍,new ArrayList(5)帶了參數(shù)5,會初始化的時候就創(chuàng)建一個長度為5的數(shù)組。總之ArrayList實際上就是一個數(shù)組。為了這個問題我看了三天源碼!