संच आणि सूचीमधील फरक वास्तविक फरक घडून येण्याआधी, आम्हाला ते खरोखर काय आहे हे जाणून घेण्याकरिता

Anonim

अॅरे सूची आणि लिंक्ड लिस्ट यातील फरक या संकल्पनेवर आलो आहोत

वास्तविक मतभेदांमधे येण्यापूर्वी आपण ते खरोखर काय आहे हे जाणून घेऊया?

सेट म्हणजे काय?

आम्ही गणित मध्ये सेट आणि "येथे सेट अधिक किंवा कमी समान संकल्पना संपूर्ण आला आहे. होय, हे घटकांचा संग्रह आहे आणि बर्याच बाबतीत समान तत्त्वांचा संग्रह आहे. आपण हे घटक सेट करण्यासाठी सेट करण्याचा प्रयत्न करु शकता आणि समजण्यास मुद्रणचा प्रयत्न करू शकता, ते प्रत्यक्षात कसे साठवले जाते

सेटमध्ये इनपुट: 20, 50, 10, 30.

हे प्रत्यक्षात सेट म्हणून 10, 20, 30, 50 मध्ये साठवले जाते.

घटक येथे क्रमवारीत लावले जातात आणि त्यांच्या समाविष्ट करण्याच्या क्रमामध्ये संग्रहित नाहीत. हे सेट करण्याच्या वैशिष्ट्यांपैकी एक आहे की ते नेहमी संचयित करण्यापूर्वी घटकांना क्रमवारी करते आणि नक्कीच, त्यात काही अपवाद आहेत आणि असेच एक LinkedhashSet आहे कारण ते घटकांच्या प्रविष्टि क्रमांचे पालन करते.

कॉम्प्युटरच्या दृष्टीने सेटमध्ये काही अतिरिक्त गुणधर्म असतात जसे की मेथड आणि इनहेरिटन्स. पद्धती केवळ कार्ये असतात आणि ते काही कार्ये करतात जसे की घटकांच्या सेटमध्ये जोडणे, काढणे किंवा फिरवणे. आपल्यापैकी बहुतेकांना 'इनहेरिटन्स' या शब्दाचा सर्वसामान्यपणे ओळखले जाते आणि याचा अर्थ ते येथे समानच आहे. होय, आम्ही त्याच्या संग्रहातून एक पद्धत प्राप्त करू शकतो, जेणेकरुन तो सेट इंटरफेससह वापरता येईल. पुन्हा आम्ही एका नवीन पदांबद्दल बोलत आहोत i. ई. सेट इंटरफेस, आणि ते पद्धतींसह संपूर्ण घटकांच्या सेटपेक्षा अधिक काही नाही.

हे कसे वापरावे?

अधिक चांगल्या प्रकारे समजून घेण्यासाठी आम्ही त्याची सिंटॅक्स सेट केलेली आहे. खालील सिंटॅक्सवरून, आपण हॅशसेट आणि ट्रीसेट सारख्या भिन्न प्रकारांची सेट ओळखू शकता.

जावा आयात करा उपयोग *;

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

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

सेट करा = नवीन हॅशसेट ();

{<(साठी (इंट i = 0; i <5; i ++) प्रयत्न करा {

सेट करा जोडा (गणना [आय]);

}

प्रणाली बाहेर println (सेट);

वृक्षसंवर्धन क्रमबद्धसंकेत = नवीन वृक्षसंच (सेट);

प्रणाली बाहेर println ("येथे आम्ही क्रमवारी केलेले आउटपुट आहे:");

प्रणाली बाहेर println (क्रमवारी लावलेले);

प्रणाली बाहेर println ("प्रथम घटक पहा:" + (पूर्णांक) सॉर्ट केलेलेसेट. प्रथम ());

प्रणाली बाहेर println ("शेवटचा घटक पहा:" + (पूर्णांक) सॉर्ट केलेलेसेट. शेवटचा ());

}

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

}

}

वरील कोडचा आऊटपुट खालीलप्रमाणे आहे.

इथे आपण क्रमवारी केलेल्या आउटपुटची नोंद केली आहे: < [12, 17, 25, 76, 88]

प्रथम घटक पहा: 12 > शेवटचा घटक पहा: 88

यादी म्हणजे काय?

एखादे सूची सेट कसे केले त्या प्रमाणे संकलन वाढवितो, परंतु ते समाविष्ट करण्याच्या क्रमाची देखभाल करते. आपण सूचीमध्ये खालील नावे जोडण्याचा प्रयत्न करा आणि त्यात कसे जोडले आहे ते पहा.

सूचीमध्ये इनपुट:

जॉन, नॅन्सी, मेरी, अॅलिस

ती एका सूचीमध्ये कशी संग्रहित केली जाते:

जॉन, नॅन्सी, मेरी अॅलिस

फक्त ते कोणत्या क्रमाने समाविष्ट केले आहे ते लक्षात घ्या. आपण हे ओळखू शकता की 'जॉन' हे इनपुटमध्ये पहिल्या घटकाचे असून आउटपुट आहे आणि त्याच क्रमाने नाव समाविष्ट केले जातात. आपण या सूचीतील मुख्य गुणधर्मांपैकी एक विचार करू शकतो.

ती कशी अंमलबजावणी करावी? खाली सिंटॅक्समध्ये अरेरेलिस्ट आणि लिंक्डेललिस्ट सारख्या यादीतील काही बघूया.

जावा आयात करा उपयोग *; सार्वजनिक वर्ग संकलनसंस्था {{ सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] args) {

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

a1 जोडा ("जॉन");

a1 ("नॅन्सी") जोडा;

a1 जोडा ("मेरी");

a1 ("अॅलिस") जोडा;

प्रणाली बाहेर println ("ArrayList Elements are");

प्रणाली बाहेर मुद्रित करा (" t" + a1);

सूची l1 = नवीन संलग्नकृत ();

l1 जोडा ("सिल्व्हिया");

l1 जोडा ("अर्जुन");

l1 जोडा ("दीपिका");

l1 जोडा ("सुसान");

प्रणाली बाहेर println ();

प्रणाली बाहेर println ("लिंक्डलिस्ट घटक आहेत");

प्रणाली बाहेर मुद्रित करा (" t" + l1); }}

वरील वाक्यरचना चे आऊटपुट खालीलप्रमाणे आहे.

अॅरेअलाइस्ट एलिमेंट्स आहेत

[जॉन, नॅन्सी, मरीया, अॅलिस]

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

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

वरील कोडवरून हे अगदी स्पष्ट आहे की दोन्ही अरेरेलिस्ट आणि लिंक्डल्डलिस्ट समाविष्ट करणे ऑर्डर राखते.

ते वेगळे कसे?

पद्धती आणि वर्णन:

संच आणि सूचीची स्वतःची पद्धती आहेत आणि आपण त्यापैकी काही बघूया.

एस. नाही

सेट - पद्धती

सूची - पद्धती

1.

  • जोडा ()

- संग्रहातील ऑब्जेक्ट जोडणे आहे.

रिक्त जोड (इंट अनुक्रमणिका, ऑब्जेक्ट ऑबजे) - हे ऑब्जेक्ट 'ओबजे' जोडते यादीच्या विशिष्ट 'इंडेक्स' मध्ये जोडते आणि हे सुनिश्चित करते की मागील घटक बदलून कोणताही घटक अधिलेखित केलेला नाही. 2
स्पष्ट () - ते संकलनातून वस्तू काढून टाकणे आहे. बुलियन ऍडएल (इंडेक्स इंडेक्स, कलेक्शन क) - संपूर्ण संग्रह 'क' ला जोडलेल्या सूचीमध्ये आणि निर्देशित केलेल्या 'इंडेक्स' वर जोडते. हे देखील सुनिश्चित करते की कोणतेही घटक अधिलेखित नाहीत. आम्ही परतीच्या मूल्याची तपासणी करून त्याच्या कार्याची शुद्धता तपासू शकतो. अन्यथा यशस्वीपणे यशस्वी झाले तर हे 'खरे' देईल, 'व्हॅल' हे मूल्य परत करते. 3
contains () - हे त्यामध्ये निश्चित ऑब्जेक्ट आहे किंवा नाही हे तपासणे आहे. जर सेटमध्ये ऑब्जेक्ट असेल तर 'व्हॅल्यू' परत मिळते. ऑब्जेक्ट प्राप्त (इंट इंडेक्स) - हे विशिष्ट निर्देशांकावरील घटक किंवा ऑब्जेक्ट परत करते. 4
isEmpty () - संग्रह त्यात कोणत्याही घटक म्हणून मदत होते हे निर्धारित करणे आहे. जर घटक नसेल तर 'true' मूल्य परत केले जाते. इंट आटिइंडएक्सऑफ (ऑब्जेक्ट ओबीजे) - हा अनुक्रमणिकाऑफ़ ()
पद्धतीच्या उलट आहे. हे निर्दिष्ट ऑब्जेक्ट 'obj' ची शेवटची घटना परत करते आणि सूचीमध्ये अशी कोणतीही वस्तू नसल्यास '1' मूल्य परत केले जाते. म्हणून, याचा वापर () सेट इंटरफेसची पद्धत म्हणून करता येतो.< 6 काढून टाकणे () - ते एका घटकास संकलनापासून ते पद्धतीने पॅरामीटर म्हणून निर्दिष्ट करणे आहे. सूचीइटरेटर यादीइतिटर () - सूचीच्या सुरवातीस अनुक्रमणिकेत एक इटरेटर आणते < 7 आकार () - संग्रहाची संख्या किंवा घटकांची संख्या मोजणे हा आहे
सूचीइंटरनेट यादीइटरेटर (इंट इंडेक्स) - हे निर्दिष्ट 'इंडेक्स' वरून प्रारंभ होणाऱ्या यादीच्या माध्यमातून फिरत ठेवण्यास मदत करते. 8 - ऑब्जेक्ट काढणे (इंट इंडेक्स) -
हे ऑब्जेक्ट निर्दिष्ट 'इंडेक्स' मध्ये डिलिट करते आणि परिणामस्वरूप हटविलेले घटक परत करते. परिणामी सूची निर्देशांकास हटविण्याचे प्रतिबिंबित करावे लागते. < 9 - ऑब्जेक्ट सेट (इंट अनुक्रमणिका, ऑब्जेक्ट ऑब्जे) - निर्दिष्ट निर्देशांकावरील इन्व्हॉटिंग लिस्टमध्ये ऑब्जेक्ट 'obj' असाइन करणे आहे. 10.
- यादीतील सबस्टीट (पूर्णांक संख्या, इंटिअरी) - त्या पद्धतीने यादीतील सूचीतील 'प्रारंभ' पासून इंडेक्स 'एन्ड' पर्यंतचे ऑब्जेक्ट समाविष्ट करणे आहे. समाविष्ट करण्याची व्यवस्था देखभाल:
सेट कधीही त्यातील घटकांची क्रमवारी कायम ठेवत नाही तर सूची कायम ठेवते. LinkedHashSet साठी या नियमात एक अपवाद आहे कारण ते समाविष्ट करण्याच्या क्रमाची देखभाल करते परंतु इतर सेट जसे की हॅशसेट आणि वृक्षसंवर्धन हे संचयित करण्यापूर्वी घटकांना क्रमवारी लावते. खालील उदाहरणे सह समान वर्णन केले आहे. सेट करा इनपुट: मांजर, डॉल, ऍपल म्हणून संग्रहित: ऍपल, मांजर, डॉल
यादी इनपुट: मांजर, डॉल, ऍपल म्हणून संचयित: मांजर, डॉल, ऍपल डुप्लिकेटची उपस्थिती:
  • ए सेट ने डुप्लिकेटस परवानगी दिली नाही तर एक यादी परवानगी देतो. एखाद्या ड्युप्लिकेट व्हॅल्यूला यादीमध्ये जोडणे आवश्यक असेल तर त्यास ओव्हरराईट मिळेल. सेट आणि लिपिक डुप्लीकेटसाठी सॅम्पल पाहा.

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

म्हणून संचयित: 10, 20, 50. सूची इनपुट: 10, 20, 20, 50.

म्हणून संचयित: 10, 20, 20, 50.

शून्य मूल्ये:

सेटमध्ये केवळ एक शून्य मूल्य असू शकते, तर एक सूचीमध्ये एकापेक्षा अधिक निरर्थक मूल्य असू शकतात आणि ते कोणत्याही संख्येपर्यंत मर्यादित नाही.

इनपुट सेट करा: शून्य, रिक्त, मॅन, डॉग, प्लेन.

  • म्हणून संचयित: शून्य, कुत्रा, मॅन, प्लेन.

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

म्हणून संचयित: निरर्थक, निरर्थक, मॅन, डॉग, प्लेन.

इटरेटर आणि लिस्ट इटरेटरचा वापर:

इटरेटर पद्धत, सेट आणि लिस्ट दोन्ही बरोबर काम करते तर सूची लिस्ट इटरेटर केवळ सूचीसह कार्य करतो. ListIterator सूचीमधून अग्रेषित तसेच मागास होण्याकरिता वापरले जाऊ शकते.

लेगसी क्लासची उपस्थिती:

  • सेटमध्ये कोणतेही लेगसी क्लास नाही तर सूची इंटरफेसमध्ये 'वेक्टर' म्हणून प्रचलित असलेली वारसा आहे. एक वेक्टर सूची इंटरफेस वापरते आणि म्हणून ते समाविष्ट करण्याची मागणी राखते. सिंक्रोनाइझेशन प्रयत्नांमुळे, व्हेक्टर, डिलिशन आणि अद्यतनांमध्ये व्हेक्टरची कामगिरी थोडी मंद आहे

अंमलबजावणी:

काही सेट लागूकरण हॅशसेट, लिंक्डहॅशसेट, आणि ट्रीसेट आहे. सूचीतील काही अंमलबजावणीमध्ये अरेरेलिस्ट आणि लिंक्डलिस्ट सामील आहेत.

सेट व लिस्ट कधी वापरायची?

संच आणि सूचीचा वापर पूर्णपणे समाविष्ट करण्याची मागणी पूर्ण करण्याच्या आवश्यकतावर अवलंबून आहे.सेट झाल्यावर कधीही सेट अप करण्याचा क्रम कायम ठेवला जात नाही हे आपण शिकलो आहे, ऑर्डर कमी महत्त्व असल्यास वापरला जाऊ शकतो. त्याचप्रकारे, सूचीच्या वापरास अनुक्रमांची क्रमवारी कायम राखण्यासाठी आवश्यक असताना वापरा.

एक सारणी स्वरूपात फरक:

  • एस. नाही

मध्ये फरक

  • सेट करा

सूची

  • 1

समाविष्ट करण्याचे आदेश

हे समाविष्ट करण्याचा आदेश ठेवतात पहिल्या स्थानावर प्रथम समाविष्ट केले आहे आणि त्यामुळे त्याचे मूल्य काहीही असो.

हे कधीही समाविष्ट करण्याची ऑर्डर कायम ठेवत नाही.

2

पद्धती हे अॅड (), रिक्त (), (), इव्हेंट (), काढून टाका () आणि आकार () यासारख्या पद्धती वापरते. हे पॅडलसह किंवा शिवाय पॅकेज न जोडता (), सेट (), आणि सबलाइस्ट () यासह अॅड (), अॅड अॅल (), लाओ (), लाँग इंडेक्सऑफ (), लिस्टइटरेटर () यासारख्या पद्धती वापरते. 3
डुप्लीकेट्स ते डुप्लीकेटस कधीही परवानगी देत ​​नाहीत आणि अशा अॅप्सच्या बाबतीत, मूल्य ओव्हरराईट केले जाते हे डुप्लिकेटस अनुमती देते 4
शून्य मूल्य अधिकतम जास्तीत जास्त एक शून्य मूल्य असू शकते. त्यात निरर्थक मूल्ये असू शकतात. 5
इटरेटरचा () आणि यादीइटरेटर () हे केवळ पद्धत इटरेटर () वापरते ते इटरेटर () आणि यादीइटरेटर () दोन्हीचा वापर करते. < 6 < लेगसी क्लासच्या अस्तित्वाचे < एकही वारसा वर्ग नाही लेगसी क्लास नावाचा एक वेक्टर म्हणून समावेश आहे. < 7
अंमलबजावणी { सेट इंटरफेस लागूकरणांपैकी काही हेशेट, लिंक्डहॅशसेट आणि ट्री सेट आहेत. सूची इंटरफेस अंमलबजावणी काही लिंक्डलिस्ट आणि अरेरेलिस्ट आहेत. आशा, आम्ही सेट आणि सूचीमधील प्रत्येक शक्य फरक समाविष्ट केला आहे. आपण काहीतरी गमावला आहे असे आपल्याला वाटत असल्यास, कृपया आम्हाला कळवा <