91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

ArrayList源碼-Remove方法流程

小云
105
2023-09-19 06:56:39
欄目: 編程語言

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

public E remove(int index) {
rangeCheck(index); // 檢查索引是否越界
modCount++; // 修改ArrayList結構的操作數加1
E 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; // 返回刪除的元素
}

流程如下:

  1. 首先,通過rangeCheck(index)方法檢查索引是否越界,如果越界則拋出IndexOutOfBoundsException異常。

  2. 接下來,modCount++ArrayList的修改操作數加1,用于實現fail-fast機制。

  3. 然后,通過elementData(index)方法獲取要刪除的元素,并將其保存到oldValue變量中。

  4. 接下來,計算出要移動的元素個數,即numMoved = size - index - 1,如果numMoved > 0,則需要將后面的元素往前移動一位。

  5. 使用System.arraycopy方法將后面的元素往前移動一位。

  6. 將最后一個元素設為null,方便垃圾回收。

  7. 最后,返回刪除的元素。

0
宁海县| 区。| 吉安市| 宜阳县| 沈丘县| 罗田县| 驻马店市| 宜宾县| 丹棱县| 如皋市| 石河子市| 砚山县| 扶余县| 枞阳县| 民勤县| 甘南县| 哈尔滨市| 镇坪县| 留坝县| 和林格尔县| 惠东县| 临潭县| 林周县| 恭城| 宕昌县| 兴和县| 大城县| 黄大仙区| 满城县| 安顺市| 原阳县| 上饶县| 外汇| 嘉祥县| 秀山| 龙川县| 讷河市| 麻栗坡县| 汝城县| 时尚| 东海县|