যদিও কিছু লোক "alচ্ছিক পদ্ধতিগুলি" তুচ্ছ করে, তারা অনেক ক্ষেত্রে উচ্চ-বিভাজনযুক্ত ইন্টারফেসের চেয়ে ভাল শব্দার্থবিজ্ঞানের প্রস্তাব দিতে পারে। অন্যান্য জিনিসের মধ্যে, তারা এমন সম্ভাবনার জন্য অনুমতি দেয় যে কোনও বস্তু তার জীবদ্দশায় দক্ষতা বা বৈশিষ্ট্য অর্জন করতে পারে, বা কোনও অবজেক্ট (বিশেষত একটি মোড়কের বস্তু) কখন জানতে পারে না যে এটি কখন তৈরি করা হবে তার সঠিক দক্ষতার প্রতিবেদন করা উচিত।
যদিও আমি জাভা সংগ্রহের ক্লাসগুলিকে ভাল ডিজাইনের প্যারাগনগুলি বলব, আমি পরামর্শ দেব যে একটি ভাল সংগ্রহের কাঠামোটি এর ভিত্তিতে এর বৈশিষ্ট্য এবং দক্ষতা সম্পর্কে একটি সংগ্রহ জিজ্ঞাসার পদ্ধতিগুলির সাথে তার ভিত্তিতে প্রচুর পরিমাণে alচ্ছিক পদ্ধতি অন্তর্ভুক্ত করা উচিত । এই জাতীয় নকশাটি একক র্যাপার ক্লাসটি বিভ্রান্তিকরভাবে অন্তর্নিহিত সংগ্রহটির ধারণক্ষমতাগুলি অস্পষ্ট না করে বিভিন্ন ধরণের সংগ্রহের সাথে ব্যবহারের অনুমতি দেবে। যদি পদ্ধতিগুলি alচ্ছিক না হয়, তবে সংগ্রহগুলির সমর্থন করতে পারে এমন প্রতিটি বৈশিষ্ট্যের সংমিশ্রণের জন্য এটির আলাদা একটি র্যাপার শ্রেণি থাকা প্রয়োজন, অথবা কিছু পরিস্থিতিতে কিছু মোড়ক ব্যবহারের অযোগ্য।
উদাহরণস্বরূপ, যদি কোনও সংগ্রহ সূচী দ্বারা কোনও আইটেম লিখতে বা শেষে আইটেম সংযোজন সমর্থন করে তবে মাঝখানে আইটেমগুলি সন্নিবেশ করা সমর্থন করে না, তবে কোডটি মোড়কে মোড়ক লাগাতে চাইছে যা এতে সম্পাদিত সমস্ত ক্রিয়াকলাপ লগ করবে একটি সংস্করণ প্রয়োজন সমর্থিত দক্ষতার সঠিক সংমিশ্রণের জন্য সরবরাহকারী লগিং র্যাপারের জন্য, বা যদি কিছু না পাওয়া যায় তবে এমন একটি মোড়ক ব্যবহার করতে হবে যা অ্যাপড বা রাইট-বাই-ইনডেক্স সমর্থিত তবে উভয়ই নয়। তবে, যদি একটি ইউনিফাইড কালেকশন ইন্টারফেস তিনটি পদ্ধতিকে "alচ্ছিক" হিসাবে সরবরাহ করে তবে এর মধ্যে বিকল্পগুলির মধ্যে কোনটি ব্যবহারযোগ্য হবে তা নির্দেশ করার পদ্ধতিগুলি অন্তর্ভুক্ত করে, তবে কোনও একক র্যাপার শ্রেণি সংগ্রহগুলি পরিচালনা করতে পারে যা কোনও বৈশিষ্ট্যের সংমিশ্রণ কার্যকর করে। এটি কোন বৈশিষ্ট্যগুলি সমর্থন করে জিজ্ঞাসা করা হলে, একটি মোড়ক সহজেই এনক্যাপসুলেটেড সংগ্রহ সমর্থন করে যা রিপোর্ট করতে পারে।
নোট করুন যে "alচ্ছিক সক্ষমতা" এর অস্তিত্ব কিছু ক্ষেত্রে সামগ্রিক সংগ্রহগুলি এমন কিছু উপায়ে বাস্তবায়ন করতে পারে যা বাস্তবায়নের অস্তিত্বের দ্বারা ক্ষমতাগুলি সংজ্ঞায়িত করা সম্ভব হলে তার চেয়ে অনেক বেশি দক্ষ ছিল। উদাহরণস্বরূপ, ধরুন, concatenate
অন্য দুটি পদ্ধতির মধ্যে একটি সমন্বিত সংগ্রহ গঠনের জন্য কোনও পদ্ধতি ব্যবহার করা হয়েছিল, যার মধ্যে প্রথমটি হয়েছিল 1,000,000 উপাদানগুলির সাথে অ্যারেলিস্ট এবং এর মধ্যে শেষটি একটি বিশ-উপাদান সংগ্রহ যা কেবল শুরু থেকে পুনরাবৃত্তি হতে পারে। যদি সংমিশ্রণ সংগ্রহটি 10,000,013 তম উপাদানটির জন্য (সূচক 1000,012) জিজ্ঞাসা করা হয়, তবে এটি অ্যারেলিস্টটিকে কতগুলি আইটেম রয়েছে (যেমন 1,000,000) জিজ্ঞাসা করতে পারে, অনুরোধ করা সূচক (12 টির ফলক) থেকে বিয়োগ করে, দ্বিতীয়টি থেকে বারোটি উপাদান পড়ে এবং এড়িয়ে যায় সংগ্রহ করুন এবং তারপরে পরবর্তী উপাদানটি ফিরিয়ে দিন।
এমন পরিস্থিতিতে, যদিও যৌগিক সংগ্রহের সূচক অনুসারে কোনও আইটেম ফেরত দেওয়ার তাত্ক্ষণিক উপায় না থাকলেও, এক হাজার 1,013 তম আইটেমের জন্য যৌগিক সংগ্রহ জিজ্ঞাসা করা পৃথকভাবে এটি থেকে 1,000,013 আইটেমগুলি পড়া এবং শেষগুলি ব্যতীত উপেক্ষা করার চেয়ে আরও দ্রুত হবে would এক.