【发布时间】:2011-01-04 11:32:52
【问题描述】:
我需要做这样的事情......
Collection<T> myCollection; ///assume it is initialized and filled
for(Iterator<?> index = myCollection.iterator(); index.hasNext();)
{
Object item = index.next();
myCollection.remove(item);
}
显然这会引发 ConcurrentModificationException...
所以我已经尝试过了,但它看起来并不优雅/高效,并且会引发类型安全:Unchecked cast from Object to T 警告
Object[] list = myCollection.toArray();
for(int index = list.length - 1; index >= 0; index--) {
myCollection.remove((T)list[index]);
}
【问题讨论】:
标签: java iterator collections concurrentmodification