底层结构是一个长度可以动态增长的数组
总:
特点:内存中分配连续空间,只存储数据,不存储地址,位置隐含着地址。
优点:节省内存空间。
索引查询效率高,每一个节点对应序号,直接计算出来。
缺点:插入删除底层移动元素,效率低。
存储元素少导致内存浪费
按照内容查询效率低,逐个判断
分:
1.添加add
底层定义了两个变量
Object类型的数组elementData,代表存储多少个元素
int 类型的size,元素个数
1.判断数组是否满,elementData的length是否等于size满了扩容,新创建数组,长度增长
50%,而后把旧数组Arrays.copyof方法添加到新数组里。
2.添加
3.size++
2.ArrayList类中内部类带泛型Itr实现了Iterator带泛型的
里面有两个方法
里面定义了int变量,一个值0
hasNext 变量0为索引,每次判断索引不等于长度
next 每遍历一个索引++,而后判断。
总:
长度1.7之前是创建就是10个长度,1.8以后创建为0,首次添加元素空间变成10