有人可以向我解释为什么以下方法不起作用(跑道是 Hibernate PersistentSet)吗?
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 接口中的 remove 方法有问题。