Java के प्रायोरिटी क्यू के ऐड और ऑफर के तरीकों में क्या अंतर है?


12

में java.util.PriorityQueue हम तरीकों add(E e)और offer(E e)। दोनों विधियों को इस प्रकार प्रलेखित किया गया है:

निर्दिष्ट तत्व को इस प्राथमिकता कतार में सम्मिलित करता है।

इन दोनों विधियों में क्या अंतर हैं?

जवाबों:


17

अंतर यह है कि offer()यह वापस आ जाएगा falseयदि यह तत्व को प्रतिबंधित क्यू पर एक आकार में सम्मिलित करने में विफल रहता है , जबकि ए add()फेंक देगा IllegalStateException

आपको offer()तब उपयोग करना चाहिए जब किसी तत्व को सम्मिलित करने में विफलता सामान्य होगी, और add()जब विफलता एक असाधारण घटना होगी (जिसे नियंत्रित करने की आवश्यकता है)।


4

अंतर का पता लगाने के लिए, प्राथमिकता वाले प्राथमिक एपीआई जावास्क्रिप्ट का पालन करना होगा जो बदले में "निर्दिष्ट द्वारा" अनुभाग हैं जो पाठक को Queueइंटरफ़ेस में संबंधित तरीकों का संदर्भ देते हैं :

  • Queue.add

    इस कतार में निर्दिष्ट तत्व को सम्मिलित करता है यदि ऐसा संभव हो तो बिना किसी संभावित प्रतिबंध का उल्लंघन किए तुरंत ऐसा करना संभव है, सफलता पर वापस लौटना और यदि कोई स्थान वर्तमान में उपलब्ध नहीं है तो एक इलीगलस्टेप्शन को फेंकना ...
    रिटर्न: true(जैसा कि Collection.add (E) द्वारा निर्दिष्ट है )
    फेंकता है: IllegalStateException- यदि इस समय क्षमता प्रतिबंध के कारण तत्व नहीं जोड़ा जा सकता है ...

  • Queue.offer

    इस कतार में निर्दिष्ट तत्व को सम्मिलित करता है यदि क्षमता प्रतिबंधों का उल्लंघन किए बिना तुरंत ऐसा करना संभव है। क्षमता-प्रतिबंधित कतार का उपयोग करते समय, यह विधि आम तौर पर (ई) जोड़ने के लिए बेहतर होती है, जो केवल एक अपवाद को फेंककर एक तत्व सम्मिलित करने में विफल हो सकती है ...
    रिटर्न: trueयदि तत्व को इस कतार में जोड़ा गया था, तो false...

दोनों विधियाँ मौजूद हैं क्योंकि इन्हें घोषित इंटरफ़ेस द्वारा कार्यान्वित किया जाना आवश्यक है।

ध्यान दें कि चूंकि प्रायोरिटी क्यू अनबाउंड है (जैसा कि javadocs में कहा गया है: " प्राथमिकता वाले ढेर के आधार पर अनबाउंड प्राथमिकता कतार ..."), ऊपर वर्णित एपीआई डिजाइनरों की प्राथमिकता लागू नहीं होती है। इसका मतलब यह है कि यह प्रोग्रामर विवेक पर छोड़ दिया जाता है कि वह विधि का उपयोग करें जो एक विशिष्ट उपयोग के संदर्भ में उनकी आवश्यकताओं के अनुसार बेहतर हो।


2
Pffft आपने जाकर डॉक्स को देखा। कमजोर। ; पी
यानिस

1
@YannisRizos अगली चीज़ जो आप देखेंगे, वह मुझे Col Shrapnel की तरह शिकायत कर रही होगी :) ओह आप 30-सेकंड के जवाबों का मुकाबला नहीं कर सकते: एक सवाल के 5 उत्तर मिलेंगे इससे पहले कि आप एक उपयुक्त लिंक blah blah
gnat
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.