我想在完成后从 ArrayList
中删除一个对象,但我找不到执行此操作的方法。像下面的示例代码一样尝试将其删除是行不通的。如何在此循环中获取当前 px
对象的迭代器以将其删除?
for( Pixel px : pixel){
[...]
if(px.y > gHeigh){
pixel.remove(pixel.indexOf(px)); // here is the thing
pixel.remove(px); //doesn't work either
}
}
最佳答案
你不能,在增强的 for 循环中。您必须使用“长期”方法:
for (Iterator<Pixel> iterator = pixels.iterator(); iterator.hasNext(); ) {
Pixel px = iterator.next();
if(px.y > gHeigh){
iterator.remove();
}
}
当然,不是所有的迭代器都支持删除,但是你应该可以使用ArrayList
。
另一种方法是构建一个额外的“要删除的像素”集合,然后在最后的列表中调用 removeAll
。
关于java - 在每个循环中从 ArrayList 中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691328/