কম্পিউটার টিউটোরিয়াল

ArrayBlockingQueue এবং ArrayDeque-এর পার্থক্য

ArrayBlockingQueue এলিমেন্টগুলো FIFO অর্ডারে সংরক্ষণ করে। এলিমেন্ট ইনসারশন সবসময় কিউর টেইলে হয় এবং রিমুভাল হেড থেকে হয়। এটি থ্রেড-সেফ এবং একটি বাউন্ডেড অ্যারে কিউ, তাই একবার তৈরি হলে ক্যাপাসিটি পরিবর্তন করা যায় না। এটি BlockingQueue ইন্টারফেসের ইমপ্লিমেন্টেশন।

জাভা ডক্স অনুযায়ী:

ArrayDeque হলো Deque ইন্টারফেসের রিসাইজেবল-অ্যারে ইমপ্লিমেন্টেশন। এর ক্যাপাসিটি রস্ট্রিকশন নেই; প্রয়োজন অনুযায়ী এটি বড় হয়। এটি থ্রেড-সেফ নয়; এক্সটার্নাল সিনক্রোনাইজেশন ছাড়া মাল্টিপল থ্রেড দ্বারা কনকারেন্ট এক্সেস সাপোর্ট করে না। নাল এলিমেন্ট নিষিদ্ধ। স্ট্যাক হিসেবে ব্যবহার করলে Stack-এর চেয়ে দ্রুত এবং কিউ হিসেবে ব্যবহার করলে LinkedList-এর চেয়ে দ্রুত।

Sr. No. Key ArrayBlockingQueue ArrayDeque
1 Basic BlockingQueue ইন্টারফেস ইমপ্লিমেন্ট করে Deque ইন্টারফেস ইমপ্লিমেন্ট করে
2 Bounded বাউন্ডেড অ্যারে কিউ। একবার তৈরি হলে ক্যাপাসিটি পরিবর্তন করা যায় না Deque-এর রিসাইজেবল-অ্যারে ইমপ্লিমেন্টেশন
3 Thread Safe থ্রেড-সেফ থ্রেড-সেফ নয়
4 Insertion/Removal ইনসারশন সবসময় টেইলে, রিমুভাল হেড থেকে দুই প্রান্তেই এলিমেন্ট ইনসারশন ও রিমুভাল সাপোর্ট করে
  1. জাভাতে Exception এবং Error-এর পার্থক্য

  2. জাভাতে Serialization এবং Externalization-এর পার্থক্য

  3. জাভাতে Iterator এবং Enumeration-এর পার্থক্য

  4. জাভাতে Queue ইন্টারফেসের peek(), poll() এবং remove() মেথডের পার্থক্য কী?