ArrayList實(shí)現(xiàn)了List接口,是順序容器,即元素存放的數(shù)據(jù)與放進(jìn)去的順序相同,允許放入null元素,底層通過(guò)數(shù)組實(shí)現(xiàn)。除該類(lèi)未實(shí)現(xiàn)同步外,其余跟Vector大致相同。
每個(gè)ArrayList都有一個(gè)容量(capacity),表示底層數(shù)組的實(shí)際大小,容器內(nèi)存儲(chǔ)元素的個(gè)數(shù)不能多于當(dāng)前容量。當(dāng)向容器中添加元素時(shí),如果容量不足,容器會(huì)自動(dòng)增大底層數(shù)組的大小。
前面已經(jīng)提過(guò),Java泛型只是編譯器提供的語(yǔ)法糖,所以這里的數(shù)組是一個(gè)Object數(shù)組,以便能夠容納任何類(lèi)型的對(duì)象。