【发布时间】:2012-11-21 15:09:56
【问题描述】:
我有一个我试图迭代的对象的 LinkedList(使用迭代器),看看它们是否有任何冲突,如果有,请将其从列表中删除。但是,我收到了一个并发修改异常。我把它放在一个同步块中,我也尝试在一个 try catch 块中捕获错误,似乎都没有帮助,代码在这里:
private void updateTP() {
synchronized (toiletpaper) {
Iterator<ToiletPaper> iter = toiletpaper.iterator();
while (iter.hasNext()) {
ToiletPaper tp = iter.next();
tp.update(1000, 700);
if (toilet.overlaps(tp)) {
System.out.println("tp splash!");
toiletpaper.remove(tp);
menu.removeLife();
}
}
}
}
对此问题的任何想法将不胜感激,我查看了here和google,他们都说要么捕获异常要么同步它,这似乎都不起作用所以......请帮忙。
【问题讨论】:
标签: java iterator linked-list synchronized