क्रमबद्ध और क्रमबद्ध संग्रह के बीच क्या अंतर है?


132

क्या छांटे गए और ऑर्डर किए गए संग्रह में कोई अंतर है ?


1
यहां जवाब भी वस्तुतः न लें। हालांकि, इस तरह की परिभाषा को व्यापक रूप से समझा और स्वीकार किया गया है, कंप्यूटर शब्दावली में इसकी वास्तविक परिभाषा नहीं है। उदाहरण के लिए, .NET में "सॉर्ट किए गए" एन्यूमरेबल के लिए इंटरफ़ेस को कहा जाता है IOrderedEnumerable (मज़ेदार बात यह है कि यह .NET में बहुत सुसंगत नहीं है। .NET में "इंसर्शन ऑर्डर" रिस्पनाइन डिक्शनरी कहा जाता है, OrderedDictionaryजो कुछ का कहना है कि यह कहने की तुलना में एक मिथ्या नाम है। IndexedDictionary) का है । जावा दुनिया में (ज्यादातर अन्य जगहों पर भी) उनका मतलब है कि उत्तर में क्या है। अधिक जानकारी के लिए यहां देखें ।
नवाफाल

यदि कुछ क्रियान्वयन उदाहरणों में नामकरण गलत हो जाता है, तो इसकी त्रुटि को प्रचारित करने का कोई कारण नहीं है। यह एक अच्छा सवाल है, अच्छे जवाब के साथ। उचित नामकरण का उपयोग करें - अपने आप सहित सभी के लिए भ्रम को कम करने में मदद करता है।
फू

जवाबों:


166

एक आदेशित संग्रह का मतलब है कि संग्रह के तत्वों का एक विशिष्ट क्रम है। आदेश मूल्य से स्वतंत्र है। एक सूची एक उदाहरण है।

एक सॉर्ट किए गए संग्रह का मतलब है कि न केवल संग्रह के पास ऑर्डर है, बल्कि ऑर्डर तत्व के मूल्य पर निर्भर करता है। एक SortedSet एक उदाहरण है।

इसके विपरीत, बिना किसी आदेश के एक संग्रह किसी भी क्रम में तत्वों को बनाए रख सकता है। एक सेट एक उदाहरण है।


1
प्राथमिकता कतार एक आदेश दिया संग्रह है?
ओवरएक्सचेंज

@overexchange उपरोक्त परिभाषाओं को देखते हुए, ज्यादातर मामलों में एक प्राथमिकता कतार एक क्रमबद्ध संग्रह होगा, क्योंकि प्राथमिकता हमेशा कतार में तत्वों की संपत्ति के रूप में परिभाषित की जाती है।
cdeszaq

यदि SortedSet को सेट से विरासत में मिला है और उसके साथ एक-एक संबंध है, तो आप कैसे कह सकते हैं सेट बिना किसी आदेश के है
xpioneer

79

एक ऑर्डर किया गया संग्रह उन तत्वों के क्रम को बनाए रखता है जो आपके द्वारा संग्रह में रखे गए अनुक्रम के आधार पर उन्हें संग्रह से हटाते हैं।

एक सॉर्ट किया गया संग्रह सॉर्ट मापदंड के आधार पर तत्वों को सॉर्ट करता है।


18

जावा "ऑर्डर किए गए संग्रह" का उपयोग करता है जैसे कि सूची, जैसे कि (हैशसेट के विपरीत), संग्रह को याद है कि तत्वों को किस क्रम में होना चाहिए। इसलिए तत्वों को एक विशेष "स्थान" संग्रह में जोड़ा जा सकता है। ।

Java "सॉर्ट किए गए संग्रह" का उपयोग एक संग्रह जैसे कि SortedSet, जहां (सूची के विपरीत) करने के लिए करता है, जो यह आदेश देता है कि पुनरावृत्त संग्रह को निर्दिष्ट करता है या तत्वों के प्राकृतिक क्रम के अनुसार है।

तो अंतर यह है कि क्या ऑर्डर मूल्यों ("क्रमबद्ध") पर निर्भर करता है, या एक संपत्ति है जो तत्वों को उनके मूल्य ("ऑर्डर") से स्वतंत्र रूप से है।


1
"जावा" का उल्लेख करने के लिए अच्छा उत्तर और +1। इसकी थोथा ज्यादातर जगहों पर स्वीकृत परिभाषा है, जैसे OrderedDictकि अजगर में। लेकिन .NET में "सॉर्ट किए गए" गणना के लिए इंटरफ़ेस कहा जाता है IOrderedEnumerable। तो यह निर्भर करता है। सिर्फ कह रहा हूँ ..
nawfal

9

हां, हालांकि अवधारणाएं समान हैं।

List एक ऑर्डर किया गया संग्रह है: प्रत्येक तत्व में एक इंडेक्स होता है, जो तत्वों का क्रम बनाता है, लेकिन आमतौर पर तत्वों की किसी भी संपत्ति से संबंधित नहीं होता है।

SortedMapऔर SortedSetक्रमबद्ध संग्रह हैं, जिसका अर्थ है कि संग्रह के माध्यम से पुनरावृत्ति तत्वों से स्वयं के अनुक्रम में होगी। उदाहरण के लिए, यदि आपके पास SortedSet<String>तत्कालीन स्ट्रिंग्स को लेक्सोग्राफिक सॉर्ट क्रम के अनुसार क्रमबद्ध किया जाएगा।

एक ऑर्डर किए गए संग्रह को सॉर्ट किया जा सकता है, लेकिन Collections.sort()बाहरी ऑर्डरिंग तत्वों के क्रम क्रम के समान होने पर (जैसे उपयोग करने के बाद ) होना आवश्यक नहीं है । एक सॉर्ट किया गया संग्रह हमेशा अंतर्निहित रूप से आदेश दिया जाता है (अर्थात हमेशा एक "पहला" तत्व होता है, और यह हमेशा उतना ही होता है जब तक आप एक और, छोटे को नहीं जोड़ते हैं)।


5

एक आदेश दिया गया संग्रह एक संग्रह है जो एक निरंतर सूचकांक का ट्रैक रखता है जिसे हर तत्व में डाला जाता है।

एक सॉर्ट किया गया संग्रह एक ऑर्डर किया हुआ संग्रह होता है, जब ऑर्डर अतिरिक्त रूप से कंपैरिबल इंटरफेस के उपयोग के दौरान तत्व के मूल्य पर निर्भर करता है, जो आपको सॉर्टिंग मानदंड को परिभाषित करने के लिए एक विधि प्रदान करता है।

मुझे उम्मीद है कि यह मदद कर सकता है।


2

छंटनी का मतलब तुलनात्मक या तुलनित्र के कार्यान्वयन के अनुसार होगा। आदेश दिया जाएगा कि यह सम्मिलन आदेश या आदेश की कुछ अन्य परिभाषा का अनुसरण कर रहा है जो सुसंगत और परिभाषित है, लेकिन अन्यथा मनमाना है।

तो स्ट्रिंग की एक क्रमबद्ध सूची को String.compareTo विधि के अनुसार क्रमबद्ध किया जाएगा। एक सूची में मनमाने क्रम में सम्मिलित तार की एक सूची हो सकती है, लेकिन वह क्रम हमेशा समान रहेगा।

बेशक एक सूची को सॉर्ट करने के लिए कलेक्शन क्लास के तरीके हैं।


1

एक सॉर्ट किए गए संग्रह का मतलब आमतौर पर तत्वों को मिनिमम वैल्यू से अधिकतम मूल्य तक या इसके विपरीत एलिमेंट से तत्वों की विशेषता के आधार पर सॉर्ट किया जाता है, जिस पर एल्गोरिदम काम करते हैं।

एक अंतराल संग्रह के लिए, सॉर्ट किसी व्यक्ति संग्रह के लिए न्यूनतम संख्या से अधिकतम संख्या तक हो सकता है, यह व्यक्तियों की ऊंचाई या व्यक्तियों के वजन, आदि द्वारा बोया जा सकता है।

जब ऑर्डर के बारे में बात की जाती है, तो इसका मतलब आमतौर पर प्रविष्टि का क्रम होता है। छँटाई के बाद ऑर्डर बदला जा सकता है


0

क्रमबद्ध संग्रह बनाम क्रमबद्ध संग्रह

1. सॉर्ट किया गया संग्रह

एक सॉर्ट किया गया संग्रह जावा संग्रह ढांचे द्वारा प्रदान की गई सॉर्टिंग सुविधाओं का उपयोग करके एक संग्रह को सॉर्ट कर रहा है। सॉर्टिंग JVM की स्मृति में होती है, जो जावा इक्वेटर का उपयोग कर डेटाबेस से पढ़े जा रहे डेटा के बाद, हाइबरनेट को चलाती है।

यदि आपका संग्रह बड़ा नहीं है, तो इसे सॉर्ट करने का अधिक कुशल तरीका होगा। जैसा कि jvm मेमोरी में होता है, यह आउट ऑफ मेमोरी एरर को फेंक सकता है।

2. आदेश संग्रह

ऑर्डर संग्रह पुनर्प्राप्ति के समय इस संग्रह को क्रमबद्ध करने के लिए क्वेरी में ऑर्डर-बाय क्लॉज को निर्दिष्ट करके एक संग्रह को सॉर्ट कर रहा है। यदि आपका संग्रह बहुत बड़ा है, तो इसे सॉर्ट करने का अधिक कुशल तरीका होगा। यह सॉर्ट किए गए संग्रह की तुलना में तेज़ है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.