[數據結構] - ArrayList探究

一 概述java

ArrayList能夠理解爲動態數組,與java的數組相比,它的容量能動態曾長,ArrayList是List接口的可變數組的實現,容許包括null值在內的全部元素。除了實現List接口外,此類還提供一些方法來操做內部用來存儲列表的數組的大小(此類大體上等同於Vector類,除了此類是不一樣步的)數組

每一個ArrayList實例都有一個容量,該容量是指用來存儲列表元素的數組的大小。隨着向ArrayList中不斷添加元素,其容量也自動增加。自動增加會帶來數據向新數組的從新拷貝。所以,若是可預知數據量的多少,可在構造ArrayList時制定其容量。在添加大量元素以前,應用程序也能夠使用ensureCapacity操做來增長ArrayList實例的容量,這能夠減小遞增式再分配的數量。spa

注意,此實現不是同步的,若是多個線程同時訪問一個ArrayList實例,而其中至少一個線程從結構上修改了列表,那麼它必須保持外部同步。注意,結構上的修改是指任何添加或刪除一個或多個元素的操做,或者顯式調整底層數組的大小。僅僅設置元素的值不是結構上的修改。線程

 

二 實現接口

ArrayList的默認容量時10,每次擴充1.5倍ci

未完待續。。同步

相關文章
相關標籤/搜索