jdk源码详解之ArrayList[updating…]
方法详解
remove方法
remove
public E remove(int index)
Removes the element at the specified position in this list. Shifts any subsequent elements to the left (subtracts one from their indices).
Specified by:
remove in interface List<E>
Overrides:
remove in class AbstractList<E>
Parameters:
index - the index of the element to be removed
Returns:
the element that was removed from the list
Throws:
IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size())
- 注意一个问题,在这个移除操作之后,会将后续的元素将会左移。
所以如下的写法就是错误的:
for(int j = 0;j< lineNumber;j++) {
lists.remove(j);
}
这里的需求是:通过变换j的值,删除lists中的数据。这样会导致删除错误的数据。正确的写法如下:
int j = 0;
while(j< lineNumber) {
lists.remove(0);//删除前 lineNumber 个元素
j++;
}

本文深入探讨了Java中ArrayList的remove方法,详细解释了当从列表中移除元素时,如何正确地遍历并更新索引,避免常见的编程陷阱。

被折叠的 条评论
为什么被折叠?



