Tag: 优先级队列

Java的PriorityQueue的内置迭代器不会以任何特定的顺序遍历数据结构。 为什么?

这是从Java文档直接 : 这个类及其迭代器实现了Collection和Iterator接口的所有可选方法。 方法iterator()中提供的Iterator不保证以任何特定顺序遍历优先级队列的元素。 如果你需要有序的遍历,可以考虑使用Arrays.sort(pq.toArray())。 所以基本上,我的PriorityQueue工作正常,但使用它自己的内置toString()方法打印到屏幕上,导致我看到这种异常行为,并想知道是否有人可以解释为什么是迭代器提供(和使用内部)不按照自然顺序遍历PriorityQueue?