Esto es directamente de la Java Docs:El iterador incorporado para PriorityQueue de java no atraviesa la estructura de datos en ningún orden en particular. ¿Por qué?
Esta clase y su iterador implementar todos los métodos opcionales de las interfaces Collection e Iterator. No se garantiza que el iterador proporcionado en el iterador de método() atraviese los elementos de la cola de prioridad en un orden en particular. Si necesita un recorrido ordenado, considere usar Arrays.sort (pq.toArray()).
Así que, básicamente, mi PriorityQueue funciona bien, pero que se puede imprimir a la pantalla usando su método propio construido en toString() me causó ver esta anomalía en la acción, y se preguntaba si alguien podría explicar por qué es que el iterador provisto (y utilizado internamente) no atraviesa el PriorityQueue en su orden natural?
Eso no es del todo correcto. El montón también tiene la garantía de que x [i] <= x [2i] <= x [2i + 1]. – EJP