我有一个如下代码,它在迭代器上使用remove作为show:
Collection<X> getdata(){
Collection<X> Xs = this.getXs();
Iterator<X> iterator = Xs.iterator();
while (iterator.hasNext()) {
X x = iterator.next();
if (somecondition) {
iterator.remove();
}
}
}
return Xs;
}
它工作了一段时间,有时需要很长时间,我的线程挂起。 getXs方法从DB返回数据。
答案 0 :(得分:3)
迭代和删除不会出现您自己描述的异常行为。还有其他环境条件在起作用。由于您描述了与数据库的交互,因此延迟和挂起与代码与数据交互的方式相关的可能性很大。可能存在的实际问题有无数变化,因此您可以提供的任何其他详细信息(与您发布的非常一般的示例相反)将有助于解决您的问题。