gpt4 book ai didi

从 ArrayList 中删除时出现 java.lang.IndexOutOfBoundsException?

转载 作者:行者123 更新时间:2023-11-29 10:20:12 25 4
gpt4 key购买 nike

我想从 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));

关于从 ArrayList 中删除时出现 java.lang.IndexOutOfBoundsException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com