有人可以向我解釋爲什麼以下不起作用(跑道是Hibernate PersistentSet)?從Set迭代器中刪除
System.out.println("size before " + runways.size());
Iterator<Runway> deleteIterator = runways.iterator();
while (deleteIterator.hasNext()) {
Runway rwy = deleteIterator.next();
if (rwy == rwy3) {
System.out.println("remove !");
deleteIterator.remove();
}
}
System.out.println("size after " + runways.size());
我得到的System.out日誌:
INFO: size before 3
INFO: remove !
INFO: size after 3
我想通過迭代器,刪除是安全的和可行的。 您看到日誌「刪除」!這表明調用了remove()方法。
編輯:PersistentSet有從Iterator接口刪除方法的問題。
你可以用簡短但完整的例子來展示這個嗎? (類似的版本適用於我...) – 2013-05-01 16:07:26
嗯...我只是試過這個,它對我的預期工作 – 2013-05-01 16:10:14
跑道是一個HashSet –
facewindu
2013-05-01 16:10:33