扫码观看视频课程
Java中的ArrayList是基于数组实现的,它使用一个Object类型数组来存储元素。向ArrayList中添加元素时,它会先检查当前数组是否已满,如果已满,则会创建一个新的数组来替换原来的数组,新数组的容量是原数组容量的1.5倍(可以通过设置构造方法中的capacity参数来指定初始容量),然后将原数组中的元素拷贝到新数组中。注意,如果新数组的容量还不够用,则会再次创建一个容量更大的数组来替换原来的数组。
由于Java中的ArrayList的底层实现是基于数组的,因此它的随机访问效率非常高,可以通过索引直接访问数组中的元素。但是在中间插入或删除元素时,需要将插入或删除位置后面的元素都向后或向前移动,因此插入和删除操作的效率相对较低,插入和删除操作的时间复杂度是 O ( n )。
ArrayList的主要属性如表2-10所示。
表2-10 ArrayList的主要属性