यह मूर्खतापूर्ण लग सकता है, लेकिन जब आपके पास (कुंजी, मान) जोड़ी का ऑब्जेक्ट होता है तो यह समझ में आता है और आप उन्हें चाबियों के अनुसार क्रमबद्ध करते हैं। कोड के साथ मेरी बात को वर्णन करने के लिए:जावा में प्राथमिकता Queue कैसे डुप्लिकेट प्रविष्टियों की तरह है?
public class Pair implements Comparable<Pair> {
private int value;
private int key;
public Pair(int key, int value) {
this.key = key;
this.value = value;
}
@Override
public int compareTo(Pair o) {
if (this.key > o.key)
return 1;
else if (this.key < o.key)
return -1;
return 0;
}
}
public class program {
public static void main(String[] args) {
PriorityQueue<Pair> queue = new PriorityQueue<Pair>;
queue.add(new Pair(1,1));
queue.add(new Pair(1,2));
queue.add(new Pair(1,3));
Pair pair = queue.poll(); // What would be in pair?
}
}
pair
में क्या होगा? पहला या अंतिम जोड़ा तत्व? या उनमें से कोई भी फैसला करने की संभावना के बिना?
+1। –
तो अगर मैं इसे सही ढंग से समझता हूं - मैं बस इस बात पर भरोसा नहीं कर सकता कि मुझे पहले क्या मूल्य मिलेगा? क्योंकि आउटपुट से यह वास्तव में ऐसा लगता है कि यह "फीफो" व्यवहार है। – Petr
एपीआई के मुताबिक आप नहीं कर सकते, लेकिन मेरे परीक्षण भी एक ही Pair.key के लिए फीफो-जैसे व्यवहार दिखाते हैं। –