अनुशंसित, 2020

संपादक की पसंद

जावा में सूची और सरणी के बीच अंतर

सूची और ArrayList संग्रह ढांचे के सदस्य हैं। सूची एक अनुक्रम में तत्वों का एक संग्रह है जहां प्रत्येक तत्व एक वस्तु है और तत्वों को वहां स्थिति (सूचकांक) द्वारा पहुँचा जाता है। ArrayList वस्तुओं की एक गतिशील सरणी बनाता है जो आवश्यकता होने पर आकार में बढ़ता या घटता है। List और ArrayList के बीच प्राथमिक अंतर यह है कि List एक इंटरफ़ेस है और ArrayList एक वर्ग है। नीचे दिए गए तुलना चार्ट की मदद से सूची और सरणी के बीच के अंतर का अध्ययन करते हैं।

तुलना चार्ट

तुलना के लिए आधारसूचीसारणी सूची
बुनियादीसूची एक इंटरफ़ेस हैArrayList एक मानक संग्रह कक्षा है।
वाक्य - विन्यासइंटरफ़ेस सूचीवर्ग ArrayList
बढ़ाएँ / लागूसूची इंटरफ़ेस संग्रह रूपरेखा का विस्तार करता है।ArrayList AbstractList को लागू करता है और सूची इंटरफ़ेस को लागू करता है।
नाम स्थानSystem.Collections.Generic।System.Collections।
कामइसका उपयोग तत्वों (वस्तुओं) की एक सूची बनाने के लिए किया जाता है जो उनके सूचकांक संख्याओं से जुड़े होते हैं।ArrayList का उपयोग एक गतिशील सरणी बनाने के लिए किया जाता है जिसमें ऑब्जेक्ट होते हैं।

सूची की परिभाषा

सूची एक इंटरफ़ेस है जो संग्रह ढांचे का विस्तार करता है। सूची इंटरफ़ेस उन तत्वों के संग्रह का वर्णन करता है जो क्रमिक रूप से व्यवस्थित होते हैं। ArrayList, LinkedList, CopyOnWriteArrayList, वेक्टर, स्टैक जैसे निम्न मानक संग्रह वर्गों द्वारा सूची इंटरफ़ेस लागू किया जाता है। सूची इंटरफ़ेस में ऐसे तत्व होते हैं जो उनके सूचकांक संख्याओं से जुड़े होते हैं। आप सूची में किसी तत्व को सूची में उसकी स्थिति (इंडेक्स) द्वारा एक्सेस कर सकते हैं। सूची इंटरफ़ेस का उपयोग करके बनाई गई सूची शून्य आधारित सूचकांक के साथ शुरू होती है।

संग्रह ढांचे द्वारा विरासत में मिली विधियों के अलावा, सूची इंटरफ़ेस स्वयं की कुछ विधि को भी परिभाषित करता है। सूची इंटरफ़ेस द्वारा जोड़े गए तरीके हैं, जोड़ (int, E) और addAll (int, Collection) । ये विधियाँ उनके सूचकांक द्वारा सूची में एक तत्व जोड़ती हैं। यदि सूची को संशोधित करने में असमर्थ है तो सूची के अंदर विधियाँ UnsupportedOperationException जैसे अपवाद को फेंक सकती हैं। जब सूची में एक वस्तु सूची में किसी अन्य वस्तु के साथ असंगत होती है, तो ClassCastException को फेंक दिया जाता है। सूची में किसी भी प्रकार के तत्वों को अनुमति नहीं दी जाती है यदि आप सूची में एक अशक्त वस्तु को डालने का प्रयास करते हैं, तो NullPointerException को फेंक दिया जाता है।

आप प्राप्त () विधि का उपयोग करके सूची से एक तत्व प्राप्त कर सकते हैं। आप सेट () विधि का उपयोग करके सूची में एक तत्व का मूल्य निर्धारित कर सकते हैं। आप विधि सबलिस्ट () का उपयोग करके सूची से सबलिस्ट भी प्राप्त कर सकते हैं। सूची के बजाय सबलिस्ट पर संचालित करना सुविधाजनक हो जाता है।

ArrayList की परिभाषा

मानक संग्रह कक्षाओं में से एक ArrayList है जो AbstractList वर्ग का विस्तार करता है और सूची इंटरफ़ेस को भी लागू करता है। ArrayList वर्ग का उपयोग गतिशील सरणियों को बनाने के लिए किया जाता है जो कि आवश्यक होने पर बढ़ते और सिकुड़ते हैं। ArrayList वर्ग का उपयोग करके बनाई गई सूची और कुछ नहीं केवल वस्तुओं की सरणी है। जावा में, मानक सरणी की निश्चित लंबाई है, इसलिए, आपको पहले से सरणी का आकार पता होना चाहिए। लेकिन, यह मामला हो सकता है कि आपको यह पता न हो कि रन टाइम तक आपको सरणी की किस लंबाई की आवश्यकता है। इसलिए, संग्रह की रूपरेखा ने इस समस्या को दूर करने के लिए ArrayList वर्ग की शुरुआत की।

ArrayList के पास ऐसे कंस्ट्रक्टर हैं जो अपनी इंटेलेक्चुअल क्षमता के साथ ऐरे बनाते हैं। यद्यपि एरेलेस्ट क्लास के ऑब्जेक्ट की क्षमता स्वचालित रूप से बढ़ जाती है जब तत्वों को सरणी में जोड़ दिया जाता है, फिर भी आप मैन्युअल रूप से एरेक्लिस्ट के ऑब्जेक्ट की क्षमता को विधि सुनिश्चित कर सकते हैं। बाद में मेमोरी को पुनः प्राप्त करने के बजाय शुरू में सरणी की क्षमता को बढ़ाना बेहतर है। क्योंकि एक ही बार में मेमोरी आवंटित करने की तुलना में रियलकास्ट महंगा है।

सूची और सरणी के बीच महत्वपूर्ण अंतर

  1. List और ArrayList के बीच सबसे महत्वपूर्ण अंतर यह है कि सूची एक इंटरफ़ेस है और ArrayList एक मानक संग्रह वर्ग है
  2. सूची इंटरफ़ेस संग्रह रूपरेखा का विस्तार करता है, जबकि, ArrayList AbstractList वर्ग का विस्तार करता है और यह सूची इंटरफेस को लागू करता है।
  3. सूची इंटरफ़ेस का नामस्थान System.Collection.Generic है, जबकि ArrayList का नामस्थान System.Collection है
  4. सूची इंटरफ़ेस उन तत्वों का एक संग्रह बनाता है जिन्हें एक अनुक्रम में संग्रहीत किया जाता है और उनकी सूची संख्या द्वारा पहचान की जाती है या उन्हें एक्सेस किया जाता है। दूसरी ओर, ArrayList उन वस्तुओं की एक सरणी बनाता है जहाँ आवश्यकता पड़ने पर सरणी गतिशील रूप से बढ़ सकती है।

निष्कर्ष:

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

Top