##ArrayList原码分析和效率分析(三)
查操作
contains(Object o):如果包含元素o,则返回为true
get(int index):返回指定索引的元素
indexOf( Object o ):返回此列表中指定元素的第一次出现的索引,如果列表不包含此元素,返回-1
lastindexOf( Object o ):返回此列表中指定元素的最后一次出现的索引,如果列表不包含此元素,返回-1
isEmpty():如果列表为空,返回true.
特征分析
增删慢:
增加慢:
1, 有可能触发扩容操作。在扩容方法操作中,从原数组拷贝数据到新数组浪费时间,同时在扩容操作会出现无效内
存销毁问题,同样浪费时间。
2. 插入数据到指定下标位置,从插入位置开始,数组中的其他数据会整体向后移动。移动操作浪费时间。
删除慢:
1. 删除指定下标元素,数组中的元素整体向前移动。
2. 删除元素较多情况下,会导致空间冗余。空间效率较低
查询快:
【寻址操作】
ArrayList底层数据操作方式为数组方式,数组+下标获取对应元素的操作效率是非常高!!!是CPU根据对应【地址】直接访问操作。