में java.util.PriorityQueue हम तरीकों add(E e)
और offer(E e)
। दोनों विधियों को इस प्रकार प्रलेखित किया गया है:
निर्दिष्ट तत्व को इस प्राथमिकता कतार में सम्मिलित करता है।
इन दोनों विधियों में क्या अंतर हैं?
में java.util.PriorityQueue हम तरीकों add(E e)
और offer(E e)
। दोनों विधियों को इस प्रकार प्रलेखित किया गया है:
निर्दिष्ट तत्व को इस प्राथमिकता कतार में सम्मिलित करता है।
इन दोनों विधियों में क्या अंतर हैं?
जवाबों:
अंतर यह है कि offer()
यह वापस आ जाएगा false
यदि यह तत्व को प्रतिबंधित क्यू पर एक आकार में सम्मिलित करने में विफल रहता है , जबकि ए add()
फेंक देगा IllegalStateException
।
आपको offer()
तब उपयोग करना चाहिए जब किसी तत्व को सम्मिलित करने में विफलता सामान्य होगी, और add()
जब विफलता एक असाधारण घटना होगी (जिसे नियंत्रित करने की आवश्यकता है)।
अंतर का पता लगाने के लिए, प्राथमिकता वाले प्राथमिक एपीआई जावास्क्रिप्ट का पालन करना होगा जो बदले में "निर्दिष्ट द्वारा" अनुभाग हैं जो पाठक को Queue
इंटरफ़ेस में संबंधित तरीकों का संदर्भ देते हैं :
इस कतार में निर्दिष्ट तत्व को सम्मिलित करता है यदि ऐसा संभव हो तो बिना किसी संभावित प्रतिबंध का उल्लंघन किए तुरंत ऐसा करना संभव है, सफलता पर वापस लौटना और यदि कोई स्थान वर्तमान में उपलब्ध नहीं है तो एक इलीगलस्टेप्शन को फेंकना ...
रिटर्न:true
(जैसा कि Collection.add (E) द्वारा निर्दिष्ट है )
फेंकता है:IllegalStateException
- यदि इस समय क्षमता प्रतिबंध के कारण तत्व नहीं जोड़ा जा सकता है ...
इस कतार में निर्दिष्ट तत्व को सम्मिलित करता है यदि क्षमता प्रतिबंधों का उल्लंघन किए बिना तुरंत ऐसा करना संभव है। क्षमता-प्रतिबंधित कतार का उपयोग करते समय, यह विधि आम तौर पर (ई) जोड़ने के लिए बेहतर होती है, जो केवल एक अपवाद को फेंककर एक तत्व सम्मिलित करने में विफल हो सकती है ...
रिटर्न:true
यदि तत्व को इस कतार में जोड़ा गया था, तोfalse
...
दोनों विधियाँ मौजूद हैं क्योंकि इन्हें घोषित इंटरफ़ेस द्वारा कार्यान्वित किया जाना आवश्यक है।
ध्यान दें कि चूंकि प्रायोरिटी क्यू अनबाउंड है (जैसा कि javadocs में कहा गया है: " प्राथमिकता वाले ढेर के आधार पर अनबाउंड प्राथमिकता कतार ..."), ऊपर वर्णित एपीआई डिजाइनरों की प्राथमिकता लागू नहीं होती है। इसका मतलब यह है कि यह प्रोग्रामर विवेक पर छोड़ दिया जाता है कि वह विधि का उपयोग करें जो एक विशिष्ट उपयोग के संदर्भ में उनकी आवश्यकताओं के अनुसार बेहतर हो।