सेट और सूची में अंतर

Anonim

सरणी सूची और लिंक्ड सूची के बीच का अंतर

वास्तविक अंतरों में शामिल होने से पहले, हमें यह जानना चाहिए कि वे वास्तव में क्या हैं?

सेट क्या है?

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

एक सेट में इनपुट: 20, 50, 10, 30.

यह वास्तव में 10, 20, 30, 50 के रूप में एक सेट में संग्रहित है।

तत्वों को यहां सॉर्ट किया गया है और उनके प्रविष्टि क्रम में संग्रहीत नहीं किया गया है। यह सेट की सुविधाओं में से एक है कि यह हमेशा स्टोर करने से पहले तत्वों को बनाये रखता है और निश्चित रूप से, इसके अपवाद हैं और ऐसा एक लिंकधारीशसेट है क्योंकि यह तत्वों के प्रविष्टि क्रम को बनाए रखता है

कंप्यूटर शब्दों में, सेट में कुछ अतिरिक्त गुण हैं जैसे कि तरीके और विरासत। तरीके कार्य की तरह हैं और वे कुछ कार्य करते हैं जैसे तत्वों के समूह के माध्यम से जोड़ने, निकालने या पुनरावृत्त करना। हममें से अधिकांश लोग इनहेरिटन्स की अच्छी तरह से ज्ञात हैं और इसका मतलब यहां वही है। हां, हम इसके संग्रह से एक विधि प्राप्त कर सकते हैं, ताकि इसे सेट इंटरफ़ेस के साथ प्रयोग किया जा सके। फिर हम एक नई अवधि के बारे में बात कर रहे हैं I ई। सेट इंटरफेस, और यह तरीकों सहित पूरे तत्वों के पूरे सेट से ज्यादा कुछ नहीं है

इसे कैसे कार्यान्वित करें?

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

जावा आयात करें util। *;

सार्वजनिक वर्ग सेटएक्सम्न {

सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग अरिज []) {

पूर्णांक संख्या [= 34, 22, 10, 60, 30, 22} {25, 17, 76, 12, 88, 57};

सेट = नया हैशसेट ();

<{ के लिए प्रयास करें (इंट i = 0; i <5; i ++) {

सेट करें। जोड़ने (गिनती [i]);

}

सिस्टम। बाहर। println (सेट);

पेड़सेट सॉर्टेडसेट = नया ट्रीसेट (सेट);

सिस्टम। बाहर। println ("हमारे पास सॉर्ट किए गए आउटपुट हैं:");

सिस्टम। बाहर। println (sortedSeteg);

सिस्टम। बाहर। println ("प्रथम तत्व को देखो:" + (पूर्णांक) क्रमबद्धसेट। पहले ());

सिस्टम। बाहर। println ("अंतिम तत्व को देखें:" + (पूर्णांक) सॉर्ट किया गयासेट। अंतिम ());

}

पकड़ (अपवाद ई) {}

}

}

उपरोक्त कोड का उत्पादन इस प्रकार है:

[25, 17, 76, 12, 88]

हमारे पास सॉर्ट किए गए आउटपुट हैं:

[12, 17, 25, 76, 88]

प्रथम तत्व को देखो: 12 > अंतिम तत्व देखें: 88

सूची क्या है?

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

एक सूची में इनपुट:

जॉन, नैन्सी, मैरी, ऐलिस

यह एक सूची में कैसे संग्रहीत है: जॉन, नैन्सी, मैरी, ऐलिस

बस उस आदेश को नोट करें जिसमें वे डाली जाती हैं। आप इस बात की पहचान कर सकते हैं कि 'जॉन' इनपुट के साथ ही उत्पादन में पहला तत्व है और उसी क्रम से नाम शामिल किया गया है। हम सूची के प्रमुख गुणों में से किसी एक को भी मान सकते हैं। इसे कैसे कार्यान्वित करें?

हमें नीचे दिए वाक्यविन्यास में सूची के तरीकों में से कुछ देखें, जैसे ArrayList और LinkedList।

जावा आयात करें util। *;

सार्वजनिक वर्ग संग्रहसंसाधन {

सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {

सूची a1 = नया अर्रेलिस्ट ();

a1। जोड़ने ("जॉन");

a1। जोड़ने ("नैन्सी");

a1। जोड़ने ("मैरी");

a1। जोड़ने ("ऐलिस");

सिस्टम। बाहर। println ("ArrayList तत्व हैं");

सिस्टम। बाहर। प्रिंट (" t" + a1);

सूची l1 = नया लिंक्डलिस्ट ();

एल 1। जोड़ने ("सिल्विया");

एल 1। जोड़ने ("अर्जुन");

एल 1। जोड़ने ("दीपिका");

एल 1। जोड़ने ("सुसान");

सिस्टम। बाहर। println ();

सिस्टम। बाहर। println ("लिंक्डलिस्ट तत्व हैं");

सिस्टम। बाहर। प्रिंट (" t" + l1); }}

ऊपर दिए वाक्यविन्यास का उत्पादन इस प्रकार है:

सरणी तत्व तत्व

[जॉन, नैन्सी, मैरी, ऐलिस]

लिंक्डलिस्ट तत्वों

[सिल्विया, अर्जुन, दीपिका, सुसान]

उपरोक्त कोड से यह बहुत स्पष्ट है कि दोनों ArrayList और लिंक्डलिस्ट सूची प्रविष्टि आदेश को बनाए रखता है।

कैसे वे अलग?

तरीके और विवरण:

सेट और सूची की अपनी पद्धतियां हैं और हमें उनमें से कुछ को यहां देखें।

  • एस। नहीं

सेट - तरीके

सूची - तरीके 1 जोड़ ()
- यह संग्रह में वस्तुओं को जोड़ना है। शून्य जोड़ (इंट इंडेक्स, ऑब्जेक्ट ओज) - यह आविष्कार सूची के निर्दिष्ट 'इंडेक्स' पर ऑब्जेक्ट 'ओबजे' जोड़ता है और यह सुनिश्चित करता है कि पिछले तत्वों को बदलकर कोई भी तत्व ओवरराइट नहीं किया गया है। 2। स्पष्ट () -
यह संग्रह से वस्तुओं को निकालना है बूलीयन एडएल (इंट इंडेक्स, कलेक्शन सी) - यह संपूर्ण संग्रह 'सी' को आविष्कार सूची में जोड़ता है और निर्दिष्ट 'सूचकांक' पर। यह यह भी सुनिश्चित करता है कि कोई भी तत्व ओवरराइट नहीं किया गया है। हम रिटर्न वैल्यू का परीक्षण करके इसके संचालन की शुद्धता की जांच भी कर सकते हैं। अगर परिवर्तन अन्यथा सफल होता है तो यह 'सत्य' देता है, यह एक मान 'झूठा' देता है। 3। इसमें () -
यह जांचना है कि सेट में उसमें एक निश्चित ऑब्जेक्ट है या नहीं यदि मान सेट में मौजूद है, तो यह एक मान 'सत्य' देता है। वस्तु प्राप्त (इंट इंडेक्स) - यह निर्दिष्ट 'सूचकांक' पर तत्व या ऑब्जेक्ट देता है 4। रिक्त ()
- यह निर्धारित करना है कि संग्रह में कोई तत्व नहीं है या नहीं। यदि कोई तत्व नहीं है, तो यह एक मूल्य 'सत्य' देता है ईटीईएंडइंडऑफ ऑब्जेक्ट (ऑब्जेक्ट ऑब्ज़) - यह इंडेक्सऑफ़ () विधि के पीछे की तरह काम करता है यह निर्दिष्ट ऑब्जेक्ट 'ओबजे' की आखिरी घटना देता है और सूची में ऐसा कोई ऑब्जेक्ट नहीं है, तो मान '1' लौटा है। इसलिए, इसे में शामिल किया जा सकता है () सेट इंटरफ़ेस की विधि 6। निकालें ()
- किसी भी तत्व को किसी विधि से एक पैरामीटर के रूप में निर्दिष्ट करके निकालना है सूचीइंटरेटर सूचीइंटरएटर () - यह सूची के प्रारंभिक सूचकांक में एक इटरेटर देता है। 7। आकार ()
- यह संग्रह की वस्तुओं या तत्वों की संख्या की गणना करना है। सूचीइंटरेटर सूची इटेरेटर (इंट इंडेक्स) - यह निर्दिष्ट 'इंडेक्स' से शुरू होने वाले इनवॉइसिंग सूची के माध्यम से चलने में मदद करता है। 8। -
ऑब्जेक्ट रिलेक्ट (इंट इंडेक्स) - यह ऑब्जेक्ट को निर्दिष्ट 'इंडेक्स' में हटा देता है और परिणाम के रूप में हटाए गए तत्व को रिटर्न देता है। इसके परिणामस्वरूप सूचीकरण सूचकांकों को हटाए जाने को दर्शाता है। 9। -
ऑब्जेक्ट सेट (इंट इंडेक्स, ऑब्जेक्ट ऑबजे) - यह निर्दिष्ट 'इंडेक्स' पर आविष्कार सूची में ऑब्जेक्ट 'ओबजे' प्रदान करना है। 10। -
सूची उप-सूची (इंट्री, अंत अंत) की सूची - सूची में ऑब्जेक्ट्स को 'स्टार्ट' से इंडेक्स 'एंड' में शामिल करना है, जिसने विधि लागू किया है। सम्मिलन आदेश रखरखाव: सेट उन तत्वों के क्रम को कभी नहीं रखता है जिसमें वे इसे डाले जाते हैं जबकि सूची इसे बनाए रखती है। LinkedHashSet के लिए इस नियम को अपवाद है क्योंकि यह प्रविष्टि के क्रम को बनाए रखता है, लेकिन अन्य सेट जैसे कि हैशसेट और वृक्षसंचार यह संग्रहीत करने से पहले तत्वों को करता है। वही नीचे उदाहरणों के साथ वर्णित है
  • सेट करें

इनपुट: बिल्ली, गुड़िया, ऐप्पल

के रूप में संग्रहीत: ऐप्पल, बिल्ली, गुड़िया

सूची इनपुट: बिल्ली, गुड़िया, ऐप्पल

के रूप में संग्रहीत: बिल्ली, गुड़िया, ऐप्पल

डुप्लिकेट की उपस्थिति:

ए सेट डुप्लिकेट की अनुमति नहीं देता है जबकि एक सूची इसकी अनुमति देता है। यदि कोई डुप्लिकेट मान किसी सूची में जोड़ा जाना है तो इसे अधिलेखित किया जाएगा। सेट और सूची डुप्लिकेट के नमूने देखें।

  • सेट इनपुट: 10, 20, 20, 50.

के रूप में संग्रहीत: 10, 20, 50.

सूची इनपुट: 10, 20, 20, 50.

के रूप में संग्रहीत: 10, 20, 20, 50.

अशक्त मूल्य:

एक सेट में केवल एक शून्य मान हो सकता है जबकि एक सूची में एक से अधिक शून्य मूल्य हो सकते हैं और यह किसी भी संख्या तक सीमित नहीं है।

  • सेट इनपुट: रिक्त, रिक्त, मैन, डॉग, प्लेन

के रूप में संग्रहीत: अशक्त, कुत्ता, मनुष्य, विमान

सूची इनपुट: रिक्त, अशक्त, मनुष्य, कुत्ता, विमान

के रूप में संग्रहीत: अशक्त, अशक्त, मनुष्य, कुत्ता, विमान

इटरेटर और लिटर इटरेटर का प्रयोग:

इटरेटर विधि सेट और सूची दोनों के साथ अच्छी तरह से काम करती है जबकि विधि सूचीइटरेटर सूची के साथ ही कार्य करता है। लिस्ट इरिटेरेटर का उपयोग सूची के माध्यम से आगे और साथ ही पिछड़े जाने के लिए भी किया जा सकता है।

  • विरासत वर्ग की उपस्थिति:

सेट में कोई लीगेसी वर्ग नहीं है, जबकि सूची इंटरफ़ेस को 'वेक्टर' कहा जाता है। वेक्टर सूची इंटरफ़ेस का उपयोग करता है और इसलिए यह प्रविष्टि के क्रम को बनाए रखता है। सिंक्रनाइज़ेशन के प्रयासों के कारण, सदिशों के अतिरिक्त, विलोपन और अपडेट्स का प्रदर्शन थोड़ा धीमा है।

  • कार्यान्वयन:

कुछ सेट लागूकरण हैंशसेट, लिंक्डहैशसेट, और ट्रीसेट। सूची के कार्यान्वयन में से कुछ में शामिल हैं: अरेरेलिस्ट और लिंक्डलिस्ट

  • सेट और सूची का उपयोग कब करना है?

सेट और लिस्ट का उपयोग सम्मिलन ऑर्डर के रखरखाव की आवश्यकता पर पूरी तरह निर्भर है।जैसा कि हमने सीखा है कि सेट कभी भी सम्मिलन के आदेश को कायम नहीं रखता है, इसका इस्तेमाल तब किया जा सकता है जब आदेश कम महत्त्व का होता है। इसी तरह, सूची का उपयोग करें जब आपको सम्मिलन के अनुक्रम को बनाए रखने की आवश्यकता होती है।

एक सारणी रूप में अंतर:

एस। नहीं

में अंतर

सेट सूची 1 प्रविष्टि आदेश
यह सम्मिलन आदेश बनाए रखता है पहले स्थान पर पहले डाला रहता है और इसके मूल्य के बावजूद। यह सम्मिलन आदेश कभी नहीं रखता है 2। विधियां
यह विधियों का उपयोग करता है जैसे कि जोड़ (), स्पष्ट (), (), शामिल है (), खाली (), हटायें () और आकार ()। यह पैराग्राफ के साथ या बिना, (), सेट (), और सबलाइस्ट () के रूप में जोड़ (), एडल (), एड (), लास्ट इंडेक्स (), लिस्टइइटरेटर () जैसे तरीकों का उपयोग करता है। 3। डुप्लिकेट
यह डुप्लिकेट की अनुमति नहीं देता है और इस तरह के दिखावे के मामले में, मूल्य ओवरराइट हो जाता है यह डुप्लिकेट की अनुमति देता है 4। अशक्त मान
अधिकतम में केवल एक शून्य मान हो सकता है इसमें कोई भी रिक्त मान हो सकते हैं 5। इटरेटर का उपयोग () और लिस्टइटरेटर ()
यह केवल विधि इटरेटर का उपयोग करता है () यह दोनों इटरेटर () और साथ ही सूचीइंटरेटर () का उपयोग करता है 6। विरासत कक्षा की उपस्थिति
कोई विरासत वर्ग नहीं है विरासत वर्ग के रूप में एक वेक्टर के रूप में कहा जाता है 7। कार्यान्वयन
सेट इंटरफ़ेस के कुछ कार्यान्वयन हैंशसेट, लिंक्ड एचशसेट और ट्री सेट। कुछ सूची इंटरफ़ेस लागूकरण लिंक्डलिस्ट और अर्रेइस्ट हैं आशा है, हमने सेट और सूची के बीच हर संभव अंतर शामिल किया है। अगर आपको लगता है कि हमें कुछ याद आ गया है, तो कृपया हमें बताएं।