
一.從源碼中可以看出,ArrayList繼承可AbstractList 和實(shí)現(xiàn)了,和實(shí)現(xiàn)了多個(gè)接口,List<E>, RandomAccess, Cloneable, java.io.Serializable
在看看他繼承機(jī)構(gòu)


這個(gè)構(gòu)造方法,是指定自己構(gòu)造ArrayList自己給定大小,要是不給定大小,或者給的是0? 都會(huì)給他一個(gè)空的

這個(gè)方法是獲取這個(gè)對(duì)象第一次出現(xiàn)的位置。從代碼中可以看出即使是空的也會(huì)有空的返回值。

這個(gè)方式,是判斷下表是否越界,這個(gè)異常我們有的時(shí)候會(huì)遇到,現(xiàn)在就知道這個(gè)異常是哪里拋出來(lái)的了。

從這里我們可以看出,ArrayList底層是數(shù)組,所以我們就可以解釋ArrayList 為什么查詢(xún)速度快,修改慢的問(wèn)題