क्या छांटे गए और ऑर्डर किए गए संग्रह में कोई अंतर है ?
क्या छांटे गए और ऑर्डर किए गए संग्रह में कोई अंतर है ?
जवाबों:
एक आदेशित संग्रह का मतलब है कि संग्रह के तत्वों का एक विशिष्ट क्रम है। आदेश मूल्य से स्वतंत्र है। एक सूची एक उदाहरण है।
एक सॉर्ट किए गए संग्रह का मतलब है कि न केवल संग्रह के पास ऑर्डर है, बल्कि ऑर्डर तत्व के मूल्य पर निर्भर करता है। एक SortedSet एक उदाहरण है।
इसके विपरीत, बिना किसी आदेश के एक संग्रह किसी भी क्रम में तत्वों को बनाए रख सकता है। एक सेट एक उदाहरण है।
जावा "ऑर्डर किए गए संग्रह" का उपयोग करता है जैसे कि सूची, जैसे कि (हैशसेट के विपरीत), संग्रह को याद है कि तत्वों को किस क्रम में होना चाहिए। इसलिए तत्वों को एक विशेष "स्थान" संग्रह में जोड़ा जा सकता है। ।
Java "सॉर्ट किए गए संग्रह" का उपयोग एक संग्रह जैसे कि SortedSet, जहां (सूची के विपरीत) करने के लिए करता है, जो यह आदेश देता है कि पुनरावृत्त संग्रह को निर्दिष्ट करता है या तत्वों के प्राकृतिक क्रम के अनुसार है।
तो अंतर यह है कि क्या ऑर्डर मूल्यों ("क्रमबद्ध") पर निर्भर करता है, या एक संपत्ति है जो तत्वों को उनके मूल्य ("ऑर्डर") से स्वतंत्र रूप से है।
OrderedDictकि अजगर में। लेकिन .NET में "सॉर्ट किए गए" गणना के लिए इंटरफ़ेस कहा जाता है IOrderedEnumerable। तो यह निर्भर करता है। सिर्फ कह रहा हूँ ..
हां, हालांकि अवधारणाएं समान हैं।
List एक ऑर्डर किया गया संग्रह है: प्रत्येक तत्व में एक इंडेक्स होता है, जो तत्वों का क्रम बनाता है, लेकिन आमतौर पर तत्वों की किसी भी संपत्ति से संबंधित नहीं होता है।
SortedMapऔर SortedSetक्रमबद्ध संग्रह हैं, जिसका अर्थ है कि संग्रह के माध्यम से पुनरावृत्ति तत्वों से स्वयं के अनुक्रम में होगी। उदाहरण के लिए, यदि आपके पास SortedSet<String>तत्कालीन स्ट्रिंग्स को लेक्सोग्राफिक सॉर्ट क्रम के अनुसार क्रमबद्ध किया जाएगा।
एक ऑर्डर किए गए संग्रह को सॉर्ट किया जा सकता है, लेकिन Collections.sort()बाहरी ऑर्डरिंग तत्वों के क्रम क्रम के समान होने पर (जैसे उपयोग करने के बाद ) होना आवश्यक नहीं है । एक सॉर्ट किया गया संग्रह हमेशा अंतर्निहित रूप से आदेश दिया जाता है (अर्थात हमेशा एक "पहला" तत्व होता है, और यह हमेशा उतना ही होता है जब तक आप एक और, छोटे को नहीं जोड़ते हैं)।
एक आदेश दिया गया संग्रह एक संग्रह है जो एक निरंतर सूचकांक का ट्रैक रखता है जिसे हर तत्व में डाला जाता है।
एक सॉर्ट किया गया संग्रह एक ऑर्डर किया हुआ संग्रह होता है, जब ऑर्डर अतिरिक्त रूप से कंपैरिबल इंटरफेस के उपयोग के दौरान तत्व के मूल्य पर निर्भर करता है, जो आपको सॉर्टिंग मानदंड को परिभाषित करने के लिए एक विधि प्रदान करता है।
मुझे उम्मीद है कि यह मदद कर सकता है।
छंटनी का मतलब तुलनात्मक या तुलनित्र के कार्यान्वयन के अनुसार होगा। आदेश दिया जाएगा कि यह सम्मिलन आदेश या आदेश की कुछ अन्य परिभाषा का अनुसरण कर रहा है जो सुसंगत और परिभाषित है, लेकिन अन्यथा मनमाना है।
तो स्ट्रिंग की एक क्रमबद्ध सूची को String.compareTo विधि के अनुसार क्रमबद्ध किया जाएगा। एक सूची में मनमाने क्रम में सम्मिलित तार की एक सूची हो सकती है, लेकिन वह क्रम हमेशा समान रहेगा।
बेशक एक सूची को सॉर्ट करने के लिए कलेक्शन क्लास के तरीके हैं।
एक सॉर्ट किए गए संग्रह का मतलब आमतौर पर तत्वों को मिनिमम वैल्यू से अधिकतम मूल्य तक या इसके विपरीत एलिमेंट से तत्वों की विशेषता के आधार पर सॉर्ट किया जाता है, जिस पर एल्गोरिदम काम करते हैं।
एक अंतराल संग्रह के लिए, सॉर्ट किसी व्यक्ति संग्रह के लिए न्यूनतम संख्या से अधिकतम संख्या तक हो सकता है, यह व्यक्तियों की ऊंचाई या व्यक्तियों के वजन, आदि द्वारा बोया जा सकता है।
जब ऑर्डर के बारे में बात की जाती है, तो इसका मतलब आमतौर पर प्रविष्टि का क्रम होता है। छँटाई के बाद ऑर्डर बदला जा सकता है
क्रमबद्ध संग्रह बनाम क्रमबद्ध संग्रह
1. सॉर्ट किया गया संग्रह
एक सॉर्ट किया गया संग्रह जावा संग्रह ढांचे द्वारा प्रदान की गई सॉर्टिंग सुविधाओं का उपयोग करके एक संग्रह को सॉर्ट कर रहा है। सॉर्टिंग JVM की स्मृति में होती है, जो जावा इक्वेटर का उपयोग कर डेटाबेस से पढ़े जा रहे डेटा के बाद, हाइबरनेट को चलाती है।
यदि आपका संग्रह बड़ा नहीं है, तो इसे सॉर्ट करने का अधिक कुशल तरीका होगा। जैसा कि jvm मेमोरी में होता है, यह आउट ऑफ मेमोरी एरर को फेंक सकता है।
2. आदेश संग्रह
ऑर्डर संग्रह पुनर्प्राप्ति के समय इस संग्रह को क्रमबद्ध करने के लिए क्वेरी में ऑर्डर-बाय क्लॉज को निर्दिष्ट करके एक संग्रह को सॉर्ट कर रहा है। यदि आपका संग्रह बहुत बड़ा है, तो इसे सॉर्ट करने का अधिक कुशल तरीका होगा। यह सॉर्ट किए गए संग्रह की तुलना में तेज़ है।
IOrderedEnumerable(मज़ेदार बात यह है कि यह .NET में बहुत सुसंगत नहीं है। .NET में "इंसर्शन ऑर्डर" रिस्पनाइन डिक्शनरी कहा जाता है,OrderedDictionaryजो कुछ का कहना है कि यह कहने की तुलना में एक मिथ्या नाम है।IndexedDictionary) का है । जावा दुनिया में (ज्यादातर अन्य जगहों पर भी) उनका मतलब है कि उत्तर में क्या है। अधिक जानकारी के लिए यहां देखें ।