ArrayList原理解读
ArrayList基本数据结构
源码基本结构
我们看到,有好多个空数组,可见,ArrayList中是用数组来存储数据的。那这些数组是怎么用的呢?继续看
几个典型的方法分析
1、判断包含某个值,可是逐个按下标遍历数组数据
遍历elementData数组,逐个取值进行匹配判断
indexOf(o) 返回的是o元素第一次出现的index——数组下标
2、从后往前遍历,查找o最后出现的位置index,下标从大到小遍历数组
4、含有一个clone方法,实则是将elementData数组数据拷贝
测试方法
5、可以直接转成一个数组
使用方法
6、获取数据
检查下标大小
直接由数组下标读取值时间复杂度O(1)
7、添加数据
扩容是原容量的1.5倍扩容(在使用ArrayList时,如果大致知道数值个数,初始化时给出容量是最好的)
判断是否需要扩容、迁移
添加新数据到数组
基础分析到此