यह सीधे Java Docs से है:जावा की प्राथमिकता Queue के लिए अंतर्निहित पुनरावर्तक किसी भी विशेष क्रम में डेटा संरचना को पार नहीं करता है। क्यूं कर?
इस वर्ग और उसके इटरेटर संग्रह और इटरेटर इंटरफेस के वैकल्पिक तरीकों के सभी लागू। विधि इटरेटर() में दिए गए इटरेटर को किसी भी विशेष क्रम में प्राथमिकता कतार के तत्वों को पार करने की गारंटी नहीं है। यदि आपको आदेश दिया गया ट्रैवर्सल की आवश्यकता है, तो Arrays.sort (pq.toArray()) का उपयोग करने पर विचार करें।
तो मूल रूप से, मेरे PriorityQueue ठीक काम करता है, लेकिन स्क्रीन का अपना toString में बनाया() विधि का उपयोग करने के लिए इसे बाहर मुद्रण मुझे कार्रवाई में इस विसंगति को देखने के लिए कारण होता है, और अगर किसी को समझा सकता है क्यों यह है कि सोच रहा था प्रदान किया गया इटरेटर (और आंतरिक रूप से उपयोग किया जाता है) प्राथमिकता क्यूई को अपने प्राकृतिक क्रम में पार नहीं करता है?
काफी सही नहीं है। ढेर में भी गारंटी है कि x [i] <= x [2i] <= x [2i + 1]। – EJP