"तुमच्या मेंदूसाठी थोडे प्रशिक्षण कसे आहे? मला आशा आहे की ते अद्याप कार्यरत आहे."

"पूर्वी, कंटेनर आणि संग्रहांच्या सारणीमध्ये तुम्ही पाहिले होते की समान इंटरफेसमध्ये अनेक अंमलबजावणी असू शकते. आता मी तुम्हाला ते का आवश्यक आहे ते सांगेन. आणि ArrayList LinkedList पेक्षा कशी वेगळी आहे ."

"गोष्ट अशी आहे की संकलन वेगवेगळ्या प्रकारे लागू केले जाऊ शकते आणि कोणतीही अंमलबजावणी नेहमीच आदर्श नसते. एका दृष्टिकोनात, काही ऑपरेशन्स जलद असतात, परंतु इतर संथ असतात. दुसर्‍या दृष्टिकोनासाठी उलट सत्य असू शकते. कोणताही परिपूर्ण एक-आकार नाही- फिट-सर्व उपाय."

"म्हणूनच एकाच संग्रहाच्या अनेक आवृत्त्या अंमलात आणण्याचा निर्णय घेण्यात आला. प्रत्येक अंमलबजावणी काही संकुचित ऑपरेशन्ससाठी ऑप्टिमाइझ केली गेली पाहिजे. अशा प्रकारे भिन्न संग्रह तयार झाले. उदाहरणे म्हणून दोन वर्गांचा अभ्यास करूया: ArrayList आणि LinkedList ."

अॅरेलिस्ट विरुद्ध लिंक्डलिस्ट - १

"अंतर्गत, ArrayList एक सामान्य अॅरे म्हणून लागू केले जाते . म्हणूनच मध्यभागी एक घटक घालण्यासाठी आपण प्रथम सर्व नंतरचे घटक एकाने शिफ्ट करणे आवश्यक आहे, आणि नंतर नवीन घटक विनामूल्य स्लॉटमध्ये ठेवा. घटक मिळवणे आणि सेट करणे (मिळवणे, सेट करणे) ) जलद आहे , कारण ही ऑपरेशन्स फक्त संबंधित अॅरे घटकाला संबोधित करतात."

" LinkedList ची अंतर्गत रचना वेगळी आहे. ती एकमेकांशी जोडलेल्या घटकांसह एक सूची म्हणून लागू केली जाते : भिन्न घटकांचा एक संच, ज्यापैकी प्रत्येक यादीतील पुढील आणि मागील घटकांचे संदर्भ संग्रहित करतो. अशा सूचीच्या मध्यभागी एक घटक समाविष्ट करण्यासाठी, तुम्हाला फक्त त्याच्या भावी शेजाऱ्यांचे संदर्भ बदलणे आवश्यक आहे. तथापि, घटक क्रमांक 130 मिळविण्यासाठी, तुम्हाला प्रत्येक ऑब्जेक्ट 0 ते 130 पर्यंत चालवावे लागेल. दुसऱ्या शब्दांत, गेट आणि सेट ऑपरेशन्स धीमे होतील . खालील तक्त्याकडे पहा. :"

वर्णन ऑपरेशन अॅरेलिस्ट लिंक्डलिस्ट
एक घटक मिळवा मिळवा जलद मंद
एक घटक सेट करा सेट जलद मंद
एक घटक जोडा (सूचीच्या शेवटी) जोडा जलद जलद
एक घटक घाला (एखाद्या अनियंत्रित स्थितीत) जोडा(i, मूल्य) मंद जलद
एक घटक काढा काढा मंद जलद

"मला दिसत आहे. मला आता ते समजू लागले आहे. काही निकष किंवा नियम आहेत जे मला एखाद्या विशिष्ट परिस्थितीत कोणता संग्रह सर्वोत्तम आहे हे समजण्यास मदत करतील?"

"हे सोपे ठेवण्यासाठी, मी तुम्हाला खालील नियम देईन: जर तुम्ही संग्रहाच्या मध्यभागी वारंवार घटक घालत असाल (किंवा काढत असाल तर, LinkedList वापरणे चांगले आहे. इतर सर्व प्रकरणांमध्ये, ArrayList चांगले कार्य करते . "

"आम्ही ते अधिक प्रगत धड्यांमध्ये कसे संरचित केले आहेत याचा शोध घेऊ, परंतु आत्ता आम्ही त्यांचा वापर करण्याचा सराव करू."