ArrayList源码-Remove方法流程

   2025-02-21 6780
核心提示:ArrayList的remove方法用于删除ArrayList中指定位置的元素。下面是ArrayList的remove方法的源码和流程:public E remove(int ind

ArrayList的remove方法用于删除ArrayList中指定位置的元素。下面是ArrayList的remove方法的源码和流程:

public E remove(int index) {rangeCheck(index); // 检查索引是否越界modCount++; // 修改ArrayList结构的操作数加1E oldValue = elementData(index); // 获取要删除的元素int numMoved = size - index - 1;if (numMoved > 0) {System.arraycopy(elementData, index + 1, elementData, index, numMoved); // 将后面的元素往前移动一位}elementData[--size] = null; // 将最后一个元素设为null,方便垃圾回收return oldValue; // 返回删除的元素}

流程如下:

首先,通过rangeCheck(index)方法检查索引是否越界,如果越界则抛出IndexOutOfBoundsException异常。

接下来,modCount++ArrayList的修改操作数加1,用于实现fail-fast机制。

然后,通过elementData(index)方法获取要删除的元素,并将其保存到oldValue变量中。

接下来,计算出要移动的元素个数,即numMoved = size - index - 1,如果numMoved > 0,则需要将后面的元素往前移动一位。

使用System.arraycopy方法将后面的元素往前移动一位。

将最后一个元素设为null,方便垃圾回收。

最后,返回删除的元素。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言