これはJavaドキュメントから直接です:
このクラスとそのイテレーターは、CollectionおよびIteratorインターフェースのすべてのオプションのメソッドを実装します。メソッドiterator()で提供されるイテレータは、特定の順序で優先キューの要素をトラバースすることが保証されていません。順序付きトラバーサルが必要な場合は、Arrays.sort(pq.toArray())の使用を検討してください。
したがって、基本的に、PriorityQueueは正常に機能しますが、独自の組み込みtoString()メソッドを使用して画面に出力すると、この異常が実際に動作していることがわかり、イテレータが提供した(そして使用した)理由を誰かが説明できるかどうか疑問に思いました。内部的に)PriorityQueueを自然な順序でトラバースしませんか?