ArrayList

作者: MrStone | 来源:发表于2019-06-24 23:02 被阅读0次

使用频率最高的集合,没有之一。
优点:

        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

待补充...

相关文章

网友评论

      本文标题:ArrayList

      本文链接:https://www.haomeiwen.com/subject/nhsaqctx.html