java - 在每个循环中从 ArrayList 中删除对象

标签 java arraylist

我想在完成后从 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/

相关文章:

java - 问题在Arraylist中的count字段中并保存它

java - 在java中动态添加更多值到数组列表

Java ArrayList 中的 ArrayOutOfBoundException

java - 我无法弄清楚为什么我的数组列表没有使用我所说的新值进行更新

java - 在 Spring MVC Controller 之间发送数据

java - 哪个 Java 包包含高等数学函数?

java - Java代码检查事件时间戳记是否在工作日和工作时间从9:30 AM到4:00 PM

java - Java获取List的具体值

java - 当违反 Swing 的线程策略时会发生什么?

java - 如何将数据从后台线程移动到ui线程