千鋒教育Java入門(mén)全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java

關(guān)于ArrayList的一些小結(jié):
List集合(接口): List集合是一個(gè)接口,它的實(shí)現(xiàn)類(lèi)有:ArrayList、LinkedList、Vector。
1.ArrayList:ArrayList的底層是通過(guò)數(shù)組實(shí)現(xiàn)的。通過(guò)List list = new ArrayList()創(chuàng)建一個(gè)集合時(shí),ArrayList()數(shù)組內(nèi)部是一個(gè)底層 數(shù)組被創(chuàng)建,在第一次調(diào)用add方法時(shí),會(huì)給elementData賦值一個(gè)容量為10的新數(shù)組,在新數(shù)組中添加元素。也可以初始化一個(gè)指定容量的ArrayList,通過(guò)帶參數(shù)的ArrayList構(gòu)造方法來(lái)創(chuàng)建。
2.ArrayList擴(kuò)容問(wèn)題:當(dāng)我們創(chuàng)建一個(gè)ArrayList對(duì)象時(shí),Java會(huì)在內(nèi)存中分配一個(gè)數(shù)組,并將其初始化為指定容量。當(dāng)向ArrayList中添加元素時(shí),如果當(dāng)前數(shù)組已滿,則會(huì)創(chuàng)建一個(gè)新的更大的數(shù)組,并將原來(lái)的元素復(fù)制到新數(shù)組中。這個(gè)過(guò)程被稱為擴(kuò)容。
在擴(kuò)容時(shí),ArrayList會(huì)根據(jù)一個(gè)增長(zhǎng)因子來(lái)計(jì)算新數(shù)組的大小。默認(rèn)情況下,增長(zhǎng)數(shù)組會(huì)擴(kuò)容為原來(lái)的1.5倍,即int length = length + length>>1,這個(gè)擴(kuò)容的大小可以通過(guò)ensurensureCapacity
方法來(lái)修改。