PriorityQueue<Integer> queue = new PriorityQueue<Integer>(4);
queue.add(8);
queue.add(5);
queue.add(23);
queue.add(6);
for(int i:queue)
System.out.println(queue.remove());
前面的代码抛出 ConcurrentModificationException。我没有看到任何修改优先级队列的线程。我确实理解它也是不同步的集合。我正在使用 Oracle Java SDK 6.0 运行 Ubuntu 12.10。
这个问题看起来很有趣。有人可以解释一下吗?是缺陷吗?