介绍:
ArrayList是一个可动态扩展的线性表,底层实现是数组。当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。由于基于数组实现,查找复杂度为O(1), 新增和删除复杂度为O(n)。本文主要介绍ArrayList的增删改查的实现原理。
实现原理:
增加元素:
数组尾部增加:
操作步骤:
1. 直接在当前数组大小后面插入一个元素
尾部添加在数组下表为6的地方添加新元素,既a[6]=6
数组中部添加:
操作步骤:
1. 将index到size(当前数组大小)的元素往后移动一个位置
2. 将新元素放置index的位置