2013-06-28 13 views
17

सॉर्ट करना मैं सोच रहा हूं कि LinkedHashSet को सॉर्ट करना संभव है या नहीं। मैं बयानएक लिंक्ड हैशसेट

Collections.sort((List<Comparable> paragraph);

हालांकि, कि सिर्फ एक त्रुटि है कि यह एक सूची में casted नहीं किया जा सकता फेंकता कोशिश की है। क्या ऐसा करने का कोई तरीका है, या क्या मुझे एक और डेटा संरचना का उपयोग करना चाहिए?

+6

इसके बजाए 'ट्रीसेट' का उपयोग करें। –

+1

आप सॉर्टेडसेट – Tala

+1

का उपयोग सॉर्टेडसेट का उपयोग कर सकते हैं, इसके बजाय गणितीय दृश्य में 'सेट' का कोई ऑर्डर नहीं है – nachokk

उत्तर

25

यदि आप तुलना के आधार पर आदेश देने से (उदाहरण के लिए आदेश क्रमबद्ध) के बारे में परवाह एक SortedSet ऐसे TreeSet के रूप में या ConcurrentSkipListSet उपयोग करना चाहिए।

LinkedHashSetसम्मिलन आदेश पर आधारित आदेश को संरक्षित करता है।

तुम सच में Collections.sort उपयोग करने के लिए आप वास्तव में एक List निर्माण (हालांकि सवाल हमें paragraph के प्रकार नहीं बताता है तो मैं यह String है मान लेंगे)

List<String> listParagraph = new ArrayList<String>(paragraph); 
Collections.sort(listParagraph) 
द्वारा एक सूची में एलएचएस परिवर्तित कर सकते हैं चाहते हैं

लेकिन शायद यह सबसे अच्छा तरीका नहीं है।

4

Collections.sortSet एस पर काम नहीं करता है, केवल List एस पर। यदि आपको पहले से Set में मौजूद डेटा को सॉर्ट करने की आवश्यकता है, तो आप उन्हें पहले List में जोड़ना चाहेंगे।

1

आप LinkedHashSet ऑब्जेक्ट (linkedHashSet) को ट्रीसेट में जोड़ सकते हैं और इसे सॉर्ट किया जाएगा।

TreeSet<T> treeSet = new TreeSet<t>(); 
treeSet.addAll(linkedHashSet); 

पेड़सेट क्रमबद्ध सेट है।

ध्यान दें कि आपको इन टी प्रकार तुलनीय (तुलनात्मक इंटरफ़ेस को कार्यान्वित करके) बनाने की आवश्यकता है।

संबंधित मुद्दे