关于ArrayList
List概述
List是一个列表结构抽象定义,有序的,可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问元素,遍历元素。包括函数的有:添加元素,删除元素,判断是否包含元素等等重要函数。
ArrayList
概述
ArrayList的底层数据结构是用数据结构实现得,申请的内存是连续得,访问数据比较快。添加元素时,如果JVM连续内存不足执行垃圾回收。添加元素大于数组大小,ArrayList会创建新数组并且老数组里元素复制到新数组中,然后添加新元素到最后一个元素后面。
类图
构造
实例化ArrayList对象时,并不知道要List的大小边界,此时可以使用一个无参数构造函数,ArrayList中有一个类型为Object[]的DEFAULTCAPACITY_EMPTY_ELEMENTDATA空数组,DEFAULTCAPACITY_EMPTY_ELEMENTDATA赋值给元素存储对象数组elementData。
若知道边界大小实例化ArrayList时,使用带初始容量initalCapacity的构造函数。initalCapacity>0时,数组长度为initalCapacity;initalCapacity=0,数组为一个空数组;initalCapacity<0,抛出IllegalArgumentException异常。见如下源码:
size变量
指明ArrayList实例当前含有多少元素。
元素添加
使用无索引的add函数进行说明。首先ensureCapacityInternal函数确认内部容量大小
ensureCapacityInternal 调用calculateCapacity函数计算容量大小。
calculateCapacity函数功能计
版权声明:本文为wspgbw原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。