一旦修改了从其获得的Collection,则不应认为Iterator可用。(对于java.util.concurrent。*集合类,放宽了此限制。)
您首先要获得一个Iterator
pq,然后进行修改
pq。修改之后
pq,Iterator
itPQ不再有效,因此当您尝试使用它时,您会收到ConcurrentModificationException。
一种解决方案是
Iterator<Integer> itPQ =pq.iterator();在
while循环之前向右移动。更好的方法是完全不使用Iterator:
for (Integer element : pq) {从技术上讲,for-each循环在内部使用Iterator,因此无论哪种方式,此循环仅在您不尝试
pq在循环内进行修改时才有效。



