我正在尝试从ArrayList中删除对象,我的代码是
ArrayList myArrayList=new ArrayList();
for(int index=0;index<20;index++){
myArrayList.add(index);
}
for(int removeIndex=0;removeIndex<=mArrayList;removeIndex++){
myArrayList.remove(removeIndex);
}
它给出一个
java.lang.IndexOutOfBoundsException
。如何从ArrayList
删除许多对象? 最佳答案
当然,删除第0个项目后,最后一个项目现在为第18个,因为这些项目已重新索引。
您可以使用多种技巧,例如,从头开始删除。或删除第0个项目,直到数组为空(或者直到删除了一些预定义数量的项目)。
码:
for(int index = mArrayList.size() - 1; removeIndex >= 0; removeIndex--) {
myArrayList.remove(removeIndex);
}
要么
for(int nremoved = mArrayList.size() - 1; nremoved >= 0; nremoved--) {
myArrayList.remove(0);
}
如果要删除所有项目,也可以考虑使用
clear()
。如果要从列表中删除多个职位,可以尝试以下操作:
Collections.sort(positions); // needed if not already sorted
for (int i = positions.size() - 1; i >= 0; i--)
myArrayList.remove(positions.get(i));