জাভার অগ্রাধিকারের কিউ এর অ্যাড এবং অফার পদ্ধতির পার্থক্য কী?


12

ইন java.util.PriorityQueue আমরা পদ্ধতি আছে add(E e)এবং offer(E e)। উভয় পদ্ধতি হিসাবে নথিভুক্ত করা হয়:

এই অগ্রাধিকার সারিতে নির্দিষ্ট উপাদান সন্নিবেশ করান।

এই দুটি পদ্ধতির মধ্যে পার্থক্য কী?

উত্তর:


17

পার্থক্য যে offer()ফিরে আসবে falseযদি এটি একটি আকার সীমাবদ্ধ উপর উপাদান সন্নিবেশ করতে ব্যর্থ সারি , যেহেতু add()একটি নিক্ষেপ করা হবে IllegalStateException

offer()যখন কোনও উপাদান toোকাতে ব্যর্থতা স্বাভাবিক হবে তখন আপনার ব্যবহার করা উচিত এবং add()ব্যর্থতা যখন ব্যতিক্রমী ঘটনা হয়ে থাকে (তবে এটি পরিচালনা করা দরকার)।


4

পার্থক্যটি সন্ধান করার জন্য, আমাদের অগ্রাধিকারের কিউআইপি এ্যাভিয়া জাভাদোকগুলি অনুসরণ করতে হবে যা পরিবর্তিতভাবে "নির্দিষ্ট করে" বিভাগ রয়েছে যা পাঠককে Queueইন্টারফেসে সম্পর্কিত পদ্ধতিগুলিতে উল্লেখ করে :

  • Queue.add

    সক্ষমতার সীমাবদ্ধতা লঙ্ঘন না করে অবিলম্বে এটি করা সম্ভব হলে সাফল্যের সত্যতা অবলম্বন করা এবং যদি বর্তমানে কোনও স্থান উপলব্ধ না হয় তবে অবৈধ স্টেট এক্সেকশন নিক্ষেপ করা সম্ভব হলে এই কাতারে নির্দিষ্ট উপাদানটিকে সন্নিবেশ করান ...
    রিটার্নস: true( কালেকশন.এডিডি (ই) দ্বারা নির্দিষ্ট করা )
    নিক্ষেপ: IllegalStateException- ক্ষমতা সীমাবদ্ধতার কারণে যদি উপাদানটি এই সময়ে যুক্ত করা যায় না ...

  • Queue.offer

    ক্ষমতা সীমাবদ্ধতা লঙ্ঘন না করে যদি তাত্ক্ষণিকভাবে এটি করা সম্ভব হয় তবে এই সারিটিতে নির্দিষ্ট উপাদানটি সন্নিবেশ করান। সক্ষমতা-সীমাবদ্ধ ক্যু ব্যবহার করার সময়, এই পদ্ধতিটি সাধারণত (ই) যুক্ত করা ভাল, যা কেবলমাত্র একটি ব্যতিক্রম ছুঁড়ে দিয়ে কোনও উপাদান সন্নিবেশ করতে ব্যর্থ হতে পারে ...
    ফেরত: trueযদি এই সারিটিতে উপাদানটি যুক্ত করা হত, অন্যথায় false...

উভয় পদ্ধতিই উপস্থিত কারণ এগুলি ঘোষিত ইন্টারফেস দ্বারা প্রয়োগ করা প্রয়োজন।

নোট যে যেহেতু PriorityQueue সীমাবদ্ধ নয় (যেমন javadocs বিবৃত: " সীমাবদ্ধ অগ্রাধিকার কিউ একটি অগ্রাধিকার গাদা উপর ভিত্তি করে ..."), উপরে প্রকাশ এপিআই ডিজাইনারদের পক্ষপাত প্রযোজ্য হবে না। এর অর্থ একটি নির্দিষ্ট ব্যবহারের প্রসঙ্গে তাদের প্রয়োজনের সাথে আরও ভালভাবে মেটাতে পন্থা বাছাই করা প্রোগ্রামার বিবেচনার বাইরে রয়েছে।


2
পিএফফ্ট আপনি গিয়ে ডক্সের দিকে তাকালেন। দুর্বল। ; পি
ইয়ানিস

1
@YannisRizos পরবর্তী জিনিস আপনি দেখতে পাবেন আমাকে হবে কর্নেল গোলার আঘাত মত অভিযোগ :) ওহ 30 সেকেন্ড উত্তরের সঙ্গে প্রতিদ্বন্দ্বিতা করতে পারবেন না: একটি প্রশ্ন 5 উত্তর পাবেন আগে আপনি এমনকি একটি যথাযথ লিঙ্কটিতে বাজে বাজে কথা জানতে পারেন
মশা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.