"आपके मस्तिष्क के लिए थोड़ा प्रशिक्षण कैसा रहेगा? मुझे आशा है कि यह अभी भी कार्य क्रम में है।"

"इससे पहले, कंटेनरों और संग्रहों की तालिका में आपने देखा था कि एक ही इंटरफ़ेस में कई कार्यान्वयन हो सकते हैं। अब मैं आपको बताऊंगा कि हमें इसकी आवश्यकता क्यों है। और ArrayList LinkedList से कैसे भिन्न है ।"

"बात यह है कि, संग्रह को अलग-अलग तरीकों से लागू किया जा सकता है और कोई भी कार्यान्वयन हमेशा आदर्श नहीं होता है। एक दृष्टिकोण में, कुछ ऑपरेशन तेज़ होते हैं, लेकिन अन्य धीमे होते हैं। विपरीत दूसरे दृष्टिकोण के लिए सही हो सकता है। कोई पूर्ण एक-आकार नहीं है- फिट-ऑल सॉल्यूशन।"

"इसीलिए एक ही संग्रह के कई संस्करणों को लागू करने का निर्णय लिया गया था। प्रत्येक कार्यान्वयन को संचालन के कुछ संकीर्ण सेट के लिए अनुकूलित किया जाना चाहिए। इस प्रकार विभिन्न संग्रह बने। उदाहरण के तौर पर दो वर्गों का अध्ययन करें: ArrayList और LinkedList ।"

ऐरेलिस्ट बनाम लिंक्डलिस्ट - 1

"आंतरिक रूप से, ArrayList को एक साधारण सरणी के रूप में कार्यान्वित किया जाता है । यही कारण है कि बीच में एक तत्व डालने की आवश्यकता है कि हम पहले सभी सफल तत्वों को एक-एक करके स्थानांतरित करें, और फिर नए तत्व को मुक्त स्लॉट में डाल दें। तत्वों को प्राप्त करना और सेट करना (प्राप्त करना, सेट करना) ) तेज है , क्योंकि ये ऑपरेशन केवल प्रासंगिक सरणी तत्व को संबोधित करते हैं।"

" लिंक्डलिस्ट की एक अलग आंतरिक संरचना है। इसे इंटरकनेक्टेड तत्वों के साथ एक सूची के रूप में लागू किया गया है : विशिष्ट तत्वों का एक सेट, जिनमें से प्रत्येक सूची में अगले और पिछले तत्वों के संदर्भों को संग्रहीत करता है। ऐसी सूची के मध्य में एक तत्व सम्मिलित करने के लिए, आपको केवल इसके भविष्य के पड़ोसियों के संदर्भों को बदलने की आवश्यकता है। हालाँकि, तत्व संख्या 130 प्राप्त करने के लिए, आपको प्रत्येक वस्तु को 0 से 130 तक चलाना होगा। दूसरे शब्दों में, प्राप्त करें और सेट करें संचालन धीमा होगा । निम्न तालिका को देखें :"

विवरण कार्यवाही सारणी सूची लिंक्ड सूची
एक तत्व प्राप्त करें पाना तेज़ धीमा
एक तत्व सेट करें तय करना तेज़ धीमा
एक तत्व जोड़ें (सूची के अंत में) जोड़ना तेज़ तेज़
एक तत्व सम्मिलित करें (मनमानी स्थिति पर) जोड़ें (मैं, मूल्य) धीमा तेज़
एक तत्व निकालें निकालना धीमा तेज़

"मैं समझ गया। मैं अब इसे समझना शुरू कर रहा हूं। क्या कोई मानदंड या नियम हैं जो मुझे यह जानने में मदद करेंगे कि किसी विशेष स्थिति में कौन सा संग्रह सबसे अच्छा है?"

"इसे सरल रखने के लिए, मैं आपको निम्नलिखित नियम दूंगा: यदि आप संग्रह के बीच में तत्वों को बार-बार डालने (या हटाने) जा रहे हैं, तो LinkedList का उपयोग करना बेहतर है। अन्य सभी मामलों में, ArrayList बेहतर काम करता है "

"हम और अधिक उन्नत पाठों में इस बात की तल्लीन करेंगे कि वे कैसे संरचित हैं, लेकिन अभी हम उनका उपयोग करने का अभ्यास करेंगे।"