美文网首页AllAboutAndroid
ArrayList 添加删除操作是如何进行的

ArrayList 添加删除操作是如何进行的

作者: AllAboutCoding | 来源:发表于2020-05-13 14:09 被阅读0次

    前段时间看《码农翻身》时,作者刘欣在末尾写了一个问题,写一个SimpleList,不需要考虑多线程等问题,只需要有两个核心逻辑点:

    1. 能往数组里添加数据,记录size,如果空间不够了则需要增大控件。
    2. 能删除指定位置的数据,并吧之后的数据向前移动。

    其实这是ArrayList的子功能,ArrayList有SimpleList的完美实现。所以简略读了一下ArrayList的源码,发现写的确实超级简略,为了不用记录无聊的代码(说实话,代码确实很无聊,重要的是思想呀),所以我简略的分析了一下ArrayList中add、remove方法,其他的像addAll方法及get、toArray方法实现起来基本相同或及其简单,所以不再赘述。

    话不多说,流程图如下:


    ArrayList 添加删除.png

    确实其中最复杂的地方应该就是扩容部分,简单说就是当需要扩容时,先计算出最小扩容数组长度,然后与原长度扩大至(原长度 + 原长度右移1位)的长度比较,最小值为扩容长度。扩容时使用Arrays.copyOf(elementData, newCapacity)方法扩大数组长度。

    相关文章

      网友评论

        本文标题:ArrayList 添加删除操作是如何进行的

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