[数据结构] - ArrayList探究
一 概述
ArrayList可以理解為動(dòng)態(tài)數(shù)組,與java的數(shù)組相比,它的容量能動(dòng)態(tài)曾長,ArrayList是List接口的可變數(shù)組的實(shí)現(xiàn),允許包括null值在內(nèi)的所有元素。除了實(shí)現(xiàn)List接口外,此類還提供一些方法來操作內(nèi)部用來存儲(chǔ)列表的數(shù)組的大小(此類大致上等同于Vector類,除了此類是不同步的)
每個(gè)ArrayList實(shí)例都有一個(gè)容量,該容量是指用來存儲(chǔ)列表元素的數(shù)組的大小。隨著向ArrayList中不斷添加元素,其容量也自動(dòng)增長。自動(dòng)增長會(huì)帶來數(shù)據(jù)向新數(shù)組的重新拷貝。因此,如果可預(yù)知數(shù)據(jù)量的多少,可在構(gòu)造ArrayList時(shí)制定其容量。在添加大量元素之前,應(yīng)用程序也可以使用ensureCapacity操作來增加ArrayList實(shí)例的容量,這可以減少遞增式再分配的數(shù)量。
注意,此實(shí)現(xiàn)不是同步的,如果多個(gè)線程同時(shí)訪問一個(gè)ArrayList實(shí)例,而其中至少一個(gè)線程從結(jié)構(gòu)上修改了列表,那么它必須保持外部同步。注意,結(jié)構(gòu)上的修改是指任何添加或刪除一個(gè)或多個(gè)元素的操作,或者顯式調(diào)整底層數(shù)組的大小。僅僅設(shè)置元素的值不是結(jié)構(gòu)上的修改。
?
二 實(shí)現(xiàn)
ArrayList的默認(rèn)容量時(shí)10,每次擴(kuò)充1.5倍
未完待續(xù)。。
轉(zhuǎn)載于:https://www.cnblogs.com/balfish/p/8862752.html
總結(jié)
以上是生活随笔為你收集整理的[数据结构] - ArrayList探究的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python基础之常用的高阶函数
- 下一篇: 软工五:四则运算