মূল পোস্টারটির জন্য আমি এখানে কিছু জিনিস স্পষ্ট করতে চাই যা অন্যরা ইঙ্গিত করেছে তবে প্রকৃতপক্ষে স্পষ্ট করে বলা হয়নি। আপনি যখন বলেন যে আপনি একটি অনন্য তালিকা চান, এটি অর্ডার করা সেটটির খুব সংজ্ঞা। সেট ইন্টারফেস এবং তালিকার ইন্টারফেসের মধ্যে কিছু অন্য কী পার্থক্য হ'ল তালিকাগুলি আপনাকে সন্নিবেশ সূচকটি নির্দিষ্ট করতে দেয়। সুতরাং, প্রশ্নটি হল আপনার কি সত্যিই তালিকার ইন্টারফেসের প্রয়োজন (যেমন কোনও তৃতীয় পক্ষের লাইব্রেরি সহ সামঞ্জস্যের জন্য ইত্যাদি), অথবা আপনি সেট সফটওয়্যারটি ব্যবহার করতে আপনার সফ্টওয়্যারটিকে নতুন করে ডিজাইন করতে পারেন? ইন্টারফেসের সাহায্যে আপনি কী করছেন তাও আপনাকে বিবেচনা করতে হবে। তাদের সূচক অনুসারে উপাদানগুলি খুঁজে পাওয়া কি গুরুত্বপূর্ণ? আপনার সেটে আপনি কতটি উপাদান প্রত্যাশা করছেন? আপনি যদি অনেক উপাদান রাখতে চলেছেন তবে কি গুরুত্বপূর্ণ অর্ডার দিচ্ছেন?
আপনার যদি সত্যিই একটি তালিকার দরকার যেখানে কেবল একটি অনন্য বাধা রয়েছে, সেখানে অ্যাপাচি কমন ইউটিলস ক্লাস org.apache.commons.collections.list.SetUniqueList রয়েছে যা আপনাকে তালিকার ইন্টারফেস এবং অনন্য সীমাবদ্ধতা সরবরাহ করবে। মনে মনে, এটি তালিকার ইন্টারফেসটি যদিও ভেঙে দেয়। আপনি যদি সূচকে তালিকাতে সন্ধান করতে চান তবে আপনি এ থেকে আরও ভাল পারফরম্যান্স পাবেন। আপনি যদি সেট ইন্টারফেসের সাথে ডিল করতে পারেন, এবং আপনার কাছে একটি ছোট ডেটা সেট রয়েছে, তবে লিংকডহ্যাশসেটটি যেতে ভাল উপায় হতে পারে। এটি কেবল আপনার সফ্টওয়্যারটির নকশা এবং অভিপ্রায় নির্ভর করে।
আবার, প্রতিটি সংগ্রহের কিছু সুবিধা এবং অসুবিধা রয়েছে। কিছু দ্রুত সন্নিবেশ কিন্তু ধীর পঠন, কারও কাছে দ্রুত পাঠ্য কিন্তু ধীর সন্নিবেশ ইত্যাদি রয়েছে প্রতিটি ক্লাস এবং ইন্টারফেসের সূক্ষ্ম বিবরণ সম্পর্কে সম্পূর্ণরূপে শিখতে সংগ্রহের ডকুমেন্টেশনের সাথে ন্যায্য পরিমাণ সময় ব্যয় করা বোধগম্য।