***
ArrayList源码分析(一)
**
ArrayList 可变长数组
概括:
ArrayList底层采用数组形式进行数据保存和处理。底层数组中为Object类型,可以存储任意类型数据。存储具体
数据类型通过创建ArrayList类对象约束,因为所有的添加操作都是通过该add和addAll方法完成的。
可变长数组是通过grow方法来进行底层数组容量扩容操作。扩容比例大约是原数组的1.5倍
ArrayList特征:
增加慢:
1. 有可能触发扩容操作。在扩容方法操作中,从原数组拷贝数据到新数据浪费时间,同时在扩容操作会出现无效
内存销毁问题,同样浪费时间。
2. 插入数据到指定下标位置,从插入位置开始,数组中的其他数据会整体向后移动,移动操作浪费时间。
删除慢:
1. 删除指定下标元素,数组中的元素整体向前移动。
2. 删除元素较多情况下,会导致空间冗余。空间效率较低
查询快:
【寻址操作】
ArrayList底层数据操作方式为数组方式,数组+下标获取对应元素的操作效率是非常高!是CPU根据对应【地址】
直接访问操作。
*/
ArrayList源码分析(一)
最新推荐文章于 2024-07-27 17:56:15 发布