一 概述
ArrayList可以理解為動態數組,與java的數組相比,它的容量能動態曾長,ArrayList是List接口的可變數組的實現,允許包括null值在內的所有元素。除了實現List接口外,此類還提供一些方法來操作內部用來存儲列表的數組的大小(此類大致上等同于Vector類,除了此類是不同步的)
每個ArrayList實例都有一個容量,該容量是指用來存儲列表元素的數組的大小。隨著向ArrayList中不斷添加元素,其容量也自動增長。自動增長會帶來數據向新數組的重新拷貝。因此,如果可預知數據量的多少,可在構造ArrayList時制定其容量。在添加大量元素之前,應用程序也可以使用ensureCapacity操作來增加ArrayList實例的容量,這可以減少遞增式再分配的數量。
注意,此實現不是同步的,如果多個線程同時訪問一個ArrayList實例,而其中至少一個線程從結構上修改了列表,那么它必須保持外部同步。注意,結構上的修改是指任何添加或刪除一個或多個元素的操作,或者顯式調整底層數組的大小。僅僅設置元素的值不是結構上的修改。
?
二 實現
ArrayList的默認容量時10,每次擴充1.5倍
未完待續。。