[数据结构] - ArrayList探究

一 概述java

ArrayList能够理解为动态数组,与java的数组相比,它的容量能动态曾长,ArrayList是List接口的可变数组的实现,容许包括null值在内的全部元素。除了实现List接口外,此类还提供一些方法来操做内部用来存储列表的数组的大小(此类大体上等同于Vector类,除了此类是不一样步的)数组

每一个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。随着向ArrayList中不断添加元素,其容量也自动增加。自动增加会带来数据向新数组的从新拷贝。所以,若是可预知数据量的多少,可在构造ArrayList时制定其容量。在添加大量元素以前,应用程序也能够使用ensureCapacity操做来增长ArrayList实例的容量,这能够减小递增式再分配的数量。spa

注意,此实现不是同步的,若是多个线程同时访问一个ArrayList实例,而其中至少一个线程从结构上修改了列表,那么它必须保持外部同步。注意,结构上的修改是指任何添加或删除一个或多个元素的操做,或者显式调整底层数组的大小。仅仅设置元素的值不是结构上的修改。线程

 

二 实现接口

ArrayList的默认容量时10,每次扩充1.5倍ci

未完待续。。同步

相关文章
相关标签/搜索