मैं जावा में PriorityQueue
के आदेश को समझ नहीं सकता। जैसा कि मैं समझता हूं कि वे ढेर आधारित हैं और वे सम्मिलन आदेश के रूप में सटीक पुनरावृत्ति आदेश प्रदान नहीं कर सकते हैं। मैं जानना चाहता हूं कि किस आधार पर प्राथमिकता स्वयं को क्रमबद्ध करें। को देखते हुए कोड:जावा में प्राथमिकता का आदेश Queue?
polledbingo
[bro, hepqo, first, okay, ssup, wassup, last]
bro
first
hepqo
last
okay
ssup
wassup
यहां तक कि जब मैं सरणी के लिए परिवर्तित, आदेश खो दिया है:
PriorityQueue<String> pq = new PriorityQueue<String>();
pq.offer("hepqo");
pq.offer("bro");
pq.offer("wassup");
pq.offer("okay");
pq.offer("bingo");
pq.offer("first");
pq.offer("last");
pq.offer("ssup");
System.out.println("polled "+pq.poll());
System.out.println(pq);
String str[] = pq.toArray(new String[0]);
Arrays.sort(str);
for(String str1:str){
System.out.println(str1);
}
उत्पादन पैदा करता है।
मुझे नहीं लगता कि यह स्ट्रिंग द्वारा प्राकृतिक आदेश भी है।
क्या प्राथमिकता पंक्तियों के सम्मिलन आदेश को बनाए रखने का कोई तरीका है?
किस आधार पर उन्होंने क्रमबद्ध किया?
है यही कारण है कि, वास्तव में, तार के लिए प्राकृतिक आदेश। –
कैसे आते हैं ??? यह तुलनित्र द्वारा नहीं, सही ?? –
यह 'स्ट्रिंग # तुलना (स्ट्रिंग)' विधि से है। ध्यान दें कि 'कतार # पोल()' कतार से तत्व को हटा देता है, यही कारण है कि "बिंगो" 'क्रमबद्ध सरणी आउटपुट में दिखाई नहीं देता है। –