मैं यहां मूल पोस्टर के लिए कुछ चीजें स्पष्ट करना चाहता हूं, जो दूसरों ने बताई हैं, लेकिन वास्तव में स्पष्ट रूप से नहीं कहा गया है। जब आप कहते हैं कि आप एक अद्वितीय सूची चाहते हैं, तो यह एक ऑर्डर किए गए सेट की परिभाषा है। सेट इंटरफ़ेस और सूची इंटरफ़ेस के बीच कुछ अन्य महत्वपूर्ण अंतर यह है कि सूची आपको सम्मिलित सूचकांक निर्दिष्ट करने की अनुमति देती है। तो, सवाल यह है कि क्या आपको वास्तव में सूची इंटरफ़ेस की आवश्यकता है (यानी एक 3 पार्टी लाइब्रेरी, आदि के साथ संगतता के लिए), या क्या आप सेट इंटरफ़ेस का उपयोग करने के लिए अपने सॉफ़्टवेयर को फिर से डिज़ाइन कर सकते हैं? आपको यह भी विचार करना होगा कि आप इंटरफ़ेस के साथ क्या कर रहे हैं। क्या तत्वों को उनके सूचकांक द्वारा खोजना महत्वपूर्ण है? आप अपने सेट में कितने तत्वों की अपेक्षा करते हैं? यदि आपके पास कई तत्व हैं, तो क्या महत्वपूर्ण है?
यदि आपको वास्तव में एक सूची की आवश्यकता है जिसमें बस एक अद्वितीय बाधा है, तो Apache Common Utils class org.apache.commons.collections.list.SetUniqueList है जो आपको सूची इंटरफ़ेस और अद्वितीय बाधा प्रदान करेगा। ध्यान रहे, यह सूची इंटरफ़ेस को तोड़ता है। हालाँकि, यदि आपको सूची में अनुक्रमणिका की तलाश करने की आवश्यकता है, तो इससे बेहतर प्रदर्शन प्राप्त करेंगे। यदि आप सेट इंटरफ़ेस से निपट सकते हैं, और आपके पास एक छोटा डेटा सेट है, तो LinkedHashSet जाने का एक अच्छा तरीका हो सकता है। यह सिर्फ आपके सॉफ्टवेयर के डिजाइन और इरादे पर निर्भर करता है।
फिर, प्रत्येक संग्रह के कुछ फायदे और नुकसान हैं। कुछ तेज़ आवेषण, लेकिन धीमी गति से पढ़ते हैं, कुछ में तेज़ पढ़ी जाती है, लेकिन धीमी आवेषण आदि, प्रत्येक संग्रह और इंटरफ़ेस के बारीक विवरणों के बारे में पूरी तरह से जानने के लिए संग्रह प्रलेखन के साथ उचित समय बिताना समझ में आता है।