使用频率最高的集合,没有之一。
优点:
1、根据下标遍历元素效率较高
2、根据下标访问元素效率较高
3、在数组的基础上封装了对元素操作的方法
4、可以自动扩容
缺点:
1、插入和删除的效率较低
2、根据内容查找的元素较低
分析源码,先从最基本的使用开始
1)创建
image.png
三个构造方法,1、给定初始大小,2、使用默认大小,3、传递一个Collection集合
2)增
image.png
第一个是直接加到集合后面,第二个是加入到指定位置。
image.png
在初始化构造的时候,会将elementData设置为DEFAULTCAPACITY_EMPTY_ELEMENTDATA,DEFAULT_CAPACITY为默认值10,minCaPacity为传入进来的值。
image.png
minCapacity>elementData.length 所需最小空间比elementData大,需要扩容
image.png
然后回到上面
elementData[index] = element;
size++;
添加完成
2)删
image.png
根据角标进行删除和根据元素进行删除
根据角标很明显,根据内容会判断是否为null的情况,然后调用fastRemove(index);
image.png
3)改和查相对简单
image.png
待补充...
网友评论