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 | ইনসারশন সবসময় টেইলে, রিমুভাল হেড থেকে | দুই প্রান্তেই এলিমেন্ট ইনসারশন ও রিমুভাল সাপোর্ট করে |