谁能解释一下 ArrayList
的 remove()
是如何工作的?
public class ListTest {
public static void main(String[] args) {
List list = new ArrayList();
for(int i=0;i<10;i++)
{
list.add(i);
}
System.out.println("Size of list before removing :"+list.size());
for(int i=0;i<list.size();i++)
{
list.remove(i);
}
System.out.println("Size of list after removing all elements :"+list.size());
}
}
输出
删除前列表的大小:10
删除所有元素后列表的大小:5
我做错了什么?
最佳答案
list.remove(i);
移动被删除元素后面的所有元素的索引。因此,在调用 list.remove(0)
后,位置 1 处的前一个元素将移动到位置 0,并且循环将永远不会删除它,因为 i 会递增。正如您所看到的,您的循环将只删除一半的元素。
此循环将删除所有元素:
while(list.size()>0)
{
list.remove(0);
}
关于java - 从数组列表中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31099026/