【发布时间】:2014-09-23 10:07:34
【问题描述】:
我试图在迭代列表时从列表中删除一些对象。为了避免 ConcurrentModificationException,我使用了一个迭代器并调用了 remove()。这部分代码如下所示。
Iterator<ClassName> it = classList.iterator();
while(it.hasNext()) {
ClassName obj = it.next();
if(obj.getData() == 1) {
it.remove(obj);
}
}
我收到以下错误:java.util.Iterator 中的 remove() 无法应用于 (ClassName)。我有两个问题
- 为什么会出现此编译错误以及如何解决?
- 在迭代列表时从列表中删除对象是一种好的做法(甚至是安全的)吗?
【问题讨论】:
标签: java collections iterator