जावा में, मेरे पास Set
है, और मैं इसे List
सॉर्ट करना चाहता हूं। क्या java.util.Collections
पैकेज में कोई विधि है जो मेरे लिए यह करेगी?मैं जावा में किसी सूची में सेट को कैसे सॉर्ट करूं?
उत्तर
उत्तर provided by the OP सबसे अच्छा नहीं है। यह अक्षम है, क्योंकि यह एक नया List
और एक अनावश्यक नई सरणी बनाता है। इसके अलावा, यह जेनेरिक सरणी के आसपास प्रकार के सुरक्षा मुद्दों के कारण "अनचेक" चेतावनियां उठाता है। आप एक ArrayList
है, जहां आप ArrayList
Collections.sort(List)
का उपयोग कर सॉर्ट कर सकते हैं में एक सेट में बदल सकते हैं
Map<Integer, String> map = new HashMap<Integer, String>();
/* Add entries to the map. */
...
/* Now get a sorted list of the *values* in the map. */
Collection<String> unsorted = map.values();
List<String> sorted = Util.asSortedList(unsorted);
ऐसा करने के लिए कोई भी तरीका नहीं है। इस का उपयोग करें:
@SuppressWarnings("unchecked")
public static <T extends Comparable> List<T> asSortedList(Collection<T> collection) {
T[] array = collection.toArray(
(T[])new Comparable[collection.size()]);
Arrays.sort(array);
return Arrays.asList(array);
}
संग्रह संग्रह भी है, लेकिन मुझे लगता है कि यह वही काम करता है।वैसे भी +1। – CookieOfFortune
संग्रह .sort एक पैरामीटर के रूप में एक सूची लेता है। –
छाँटे गए सेट:
return new TreeSet(setIWantSorted);
या:
return new ArrayList(new TreeSet(setIWantSorted));
यह मेरा पहला विचार था, लेकिन पूछताछ एक सूची चाहता था –
@Alex: इस दृष्टिकोण का अभी भी उपयोग किया जा सकता है; नई ArrayList (नया ट्रीसेट (setIWantSorted) लौटें) – Jonik
मैंने वास्तव में इस समाधान का उपयोग किया, लेकिन मैं इसे सलाह नहीं दूंगा। ट्रीसेट राज्यों पर प्रलेखन के रूप में (http://download.oracle.com/javase/1.4.2/docs/api/java/util/TreeSet.html देखें), यह प्रभावी रूप से बराबर की बजाय तुलना() विधि का उपयोग करता है () विधि - इसलिए यदि आपके पास सेट में दो ऑब्जेक्ट्स हैं जो समान बराबर() परिणाम हैं, तो उन्हें डुप्लीकेट के रूप में देखा जाएगा और, जैसे, ट्रीसेट में नहीं जोड़ा जाएगा। खबरदार। – fwielstra
List myList = new ArrayList(collection);
Collections.sort(myList);
... लेकिन चाल करना चाहिए। लागू होने पर जेनेरिक के साथ स्वाद जोड़ें।
मेरे पास एक उपयोगी स्निपेट था जिसे मैं समुदाय को दान करना चाहता था। जब मैंने सूचना की खोज की, तो मुझे यह नहीं मिला। मैं अगले व्यक्ति की नौकरी को आसान बनाने की कोशिश कर रहा था। http://stackoverflow.com/questions/18557/how-does-stackoverflow-work-the-unofficial-faq#119658 –
हाँ, निश्चित है, लेकिन आपके द्वारा प्रदान किया गया लिंक वास्तव में _real_ प्रश्नों (यानी उन लोगों के बारे में बात कर रहा है) जिसका उत्तर नहीं है, फिर इसे ढूंढें)। आपका प्रश्न केवल उत्तर देने के लिए था ... मैं वास्तव में सैकड़ों प्रश्न दर्ज कर सकता था और खुद का जवाब दे सकता था; ये मुद्दा नहीं है! – Seb
@ सेब: मैं असहमत हूं। मुझे इस सवाल के साथ कुछ भी गलत नहीं दिख रहा है। यह स्पष्ट रूप से एक बेहद सरल सवाल नहीं था, और अब वह पहले से बेहतर तरीके से जानता है! –
:
public static
<T extends Comparable<? super T>> List<T> asSortedList(Collection<T> c) {
List<T> list = new ArrayList<T>(c);
java.util.Collections.sort(list);
return list;
}
यहाँ एक उपयोग उदाहरण है:
इसके बजाय, कुछ इस तरह का उपयोग करें।
keySet = (Set) map.keySet();
ArrayList list = new ArrayList(keySet);
Collections.sort(list);
यह स्वीकृत उत्तर से अलग कैसे है? – Tim
हमेशा कार्यान्वयन छँटाई (अगर वस्तु एक स्ट्रिंग या आदिम डेटा प्रकार के लिए आवरण कक्षाएं नहीं है) प्रदान करने के लिए या तो तुलनाकारी या तुलनीय इंटरफ़ेस का उपयोग करने के लिए सुरक्षित:
यहाँ कोड है। एक तुलनित्र कार्यान्वयन नाम के आधार पर कर्मचारियों को सॉर्ट करने के लिए के लिए जब आप अलग छंटाई एल्गोरिथ्म के लिए एक ही वस्तु पर (कहो रोजगार नाम, रोजगार वेतन, आदि) की जरूरत है
List<Employees> empList = new LinkedList<Employees>(EmpSet);
class EmployeeComparator implements Comparator<Employee> {
public int compare(Employee e1, Employee e2) {
return e1.getName().compareTo(e2.getName());
}
}
Collections.sort(empList , new EmployeeComparator());
तुलनाकारी उपयोगी है एक उदाहरण के रूप। एकल ऑब्जेक्ट सॉर्टिंग को आवश्यक ऑब्जेक्ट में तुलनात्मक इंटरफ़ेस का उपयोग करके कार्यान्वित किया जा सकता है।
TreeSet sortedset = new TreeSet();
sortedset.addAll(originalset);
list.addAll(sortedset);
जहां originalset = अवर्गीकृत सेट और सूची = सूची
यहाँ लौटा दी करने के लिए कैसे आप जावा 8 के स्ट्रीम के साथ यह क्या कर सकते हैं:
mySet.stream().sorted().collect(Collectors.toList());
या एक कस्टम तुलनित्र के साथ:
mySet.stream().sorted(myComparator).collect(Collectors.toList());
@ जेरेमी स्टीन मैं एक ही कोड को लागू करना चाहता था। साथ ही, मैं सेट को सूची में सॉर्ट करना चाहता था, इसलिए सेट I का उपयोग करने के बजाय सेट वैल्यू को सूची में परिवर्तित करें और उस सूची को उस चर के अनुसार क्रमबद्ध करें। इस कोड ने मुझे मदद की,
set.stream().sorted(Comparator.comparing(ModelClassName::sortingVariableName)).collect(Collectors.toList());
- 1. मैं एक शब्दकोश को सॉर्ट कैसे करूं?
- 2. मैं प्रोग्राम में जावा में समय क्षेत्र कैसे सेट करूं?
- 3. जावा सूची को किसी सूची में कैसे संग्रहीत करता है?
- 4. मैं जावा में माउस की स्थिति कैसे सेट करूं?
- 5. मैं किसी सरणी को किसी निश्चित "आकार" के किसी अन्य सरणी में पुनर्वितरित कैसे करूं? पीएचपी
- 6. मैं चयनित आइटम को QListWidget में कैसे सेट करूं?
- 7. मूस में, मैं किसी भी समय सेट किए जाने पर किसी विशेषता को कैसे संशोधित करूं?
- 8. मैं किसी तारीख को TargetNullValue कैसे सेट करूं?
- 9. मैं पाइथन में किसी अन्य सूची में सूची कैसे डालूं?
- 10. मैं बिना किसी पूर्वानुमान के सूची में सूची से सूची कैसे कॉपी करूं?
- 11. मैं स्ट्रिंग को Io में किसी सूची में कैसे परिवर्तित करूं?
- 12. मैं सूची में प्रत्येक कमांड को कैसे निष्पादित करूं?
- 13. मैं PHP/MySQL में किसी उपयोगकर्ता को प्रमाणित कैसे करूं?
- 14. मैं जावा में स्ट्रिंग में किसी वर्ण को कैसे बदलूं?
- 15. मैं एक JSON सरणी को जावा सूची में कैसे परिवर्तित करूं? मैं स्वेन्सन
- 16. किसी आइटम को सूची में ले जाएं?
- 17. जावा में किसी अन्य सूची में एक सूची जोड़ना?
- 18. मैं स्ट्रिंग वर्णों को सूची में कैसे परिवर्तित करूं?
- 19. मैं सामग्री प्रकार को जूमला में कैसे सेट करूं?
- 20. मैं ग्राफविज़ में क्लस्टर फ़ॉन्ट विशेषताओं को कैसे सेट करूं?
- 21. मैं जावा में किसी निर्देशिका में फ़ाइलों के माध्यम से कैसे पुन: प्रयास करूं?
- 22. मैं जावा में संकुल दस्तावेज़ कैसे करूं?
- 23. मैं जावा अपवाद में कैसे संलग्न करूं?
- 24. मैं जावा में HTTP कैसे प्राप्त करूं?
- 25. जावा में एक स्ट्रिंग को सॉर्ट करें
- 26. मैं किसी ऑब्जेक्ट को XDocument में क्रमबद्ध कैसे करूं?
- 27. मैं PowerShell में किसी शर्त को कैसे अस्वीकार करूं?
- 28. मैं xcode में किसी ईवेंट को कैसे देरी करूं?
- 29. मैं जावास्क्रिप्ट में किसी संख्या को कैसे गोल करूं?
- 30. मैं पायथन में किसी छवि को डीसीटी कैसे लागू करूं?
धन्यवाद! वह SuppressWarnings हमेशा मुझे परेशान किया। –
@ एरिक्सन जहां मुझे कक्षा कक्षा मिलनी है, मेरा मतलब है कि कौन सा पैकेज। कृपया मेरी मदद करें। – sunleo
@sunleo 'Util' क्लास वह है जिसमें मैंने लिखा 'asSortedList()' विधि शामिल है। दूसरे शब्दों में, आप 'Util' क्लास स्वयं लिखते हैं, और उस कोड को इसमें डाल देते हैं। – erickson