जावा में ArrayList और LinkedList के बीच अंतर

लेखक: Laura McKinney
निर्माण की तारीख: 3 अप्रैल 2021
डेट अपडेट करें: 15 मई 2024
Anonim
जावा में LinkedList बनाम ArrayList | ArrayList और LinkedList के बीच अंतर | एडुरेका
वीडियो: जावा में LinkedList बनाम ArrayList | ArrayList और LinkedList के बीच अंतर | एडुरेका

विषय


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


नीचे दिखाए गए तुलना चार्ट की सहायता से ArrayList और LinkedList के बीच कुछ और अंतरों पर चर्चा करते हैं।

  1. तुलना चार्ट
  2. परिभाषा
  3. मुख्य अंतर
  4. निष्कर्ष

तुलना चार्ट

तुलना के लिए आधारसारणी सूचीलिंक्ड सूची
बुनियादी ArrayList सूची में तत्वों के लिए यादृच्छिक उपयोग की अनुमति देता है।लिंक्डलिस्ट सूची में तत्वों तक यादृच्छिक पहुंच की अनुमति नहीं देता है।
डेटा संरचनातत्वों के भंडारण के लिए उपयोग की जाने वाली आंतरिक संरचना गतिशील सरणी है।तत्वों को संग्रहीत करने के लिए उपयोग की जाने वाली आंतरिक संरचना दोगुनी लिंक सूची है।
का विस्तारArrayList AbstarctList वर्ग का विस्तार करता है।LinkedList AbstractSequentialList का विस्तार करता है।
औजारAbstractList सूची इंटरफ़ेस लागू करता है।लिंक्डलिस्ट लागू करता है सूची, Deque, कतार।
पहुंच सूची में तत्वों तक पहुंच ArrayList में तेज है।सूची में तत्वों तक पहुंच लिंक्डलिस्ट में धीमी है।
जोड़-तोड़सूची में तत्वों का हेरफेर ArrayList में धीमा है।LinkedList में सूची में तत्वों का हेरफेर तेजी से होता है।
व्यवहारArraylList सूची को लागू करता है क्योंकि यह सूची को लागू करता है।LinkedList कतार के रूप में एक अच्छी तरह से व्यवहार करता है क्योंकि यह सूची और कतार दोनों को लागू करता है।


ArrayList की परिभाषा

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

ArrayList का उपयोग करके कार्यान्वित सरणी सूची तक पहुँचा जा सकता है बेतरतीब ढंग से जैसे कि ArrayList इंडेक्स-बेस पर काम करता है। इसलिए इंडेक्स को जानकर आप सीधे सूची के एनेम को एक्सेस कर सकते हैं। ArrayList के तीन निर्माता हैं:

ArrayList () ArrayList (संग्रह <; फैली E> c) ArrayList (int क्षमता)

प्रथम कंस्ट्रक्टर एक खाली सरणी सूची लागू करता है। दूसरा निर्माणकर्ता एक सरणी सूची का उपयोग करते हुए आरम्भ करता है संग्रह सी तत्वों। तीसरा निर्माता के साथ सरणी सूची को लागू करता है क्षमता तर्क में प्रदान किया गया। ArrayList के साथ काम करना, कभी-कभी आपको संग्रह ArrayList को एक सरणी में बदलने की आवश्यकता होगी। इसे कॉल करके किया जा सकता है toArray ().

लिंक्डलिस्ट की परिभाषा

ArrayList की तरह, लिंक्ड सूची एक भी है संग्रह वर्ग का उपयोग करता है दोगुनी लिंक की गई सूची सूची में तत्वों को संग्रहीत करने के लिए एक आंतरिक डेटा संरचना के रूप में। लिंक्डलिस्ट वर्ग का विस्तार होता है AbstractSequentialList और लागू करता है सूची, Deque तथा पंक्ति इंटरफेस। लिंक्डलिस्ट का उपयोग करके लागू की गई सूची को यादृच्छिक रूप से एक्सेस नहीं किया जा सकता है। यदि आप सूची से किसी तत्व को पुनः प्राप्त करना चाहते हैं, तो आपको उस तत्व को खोजने के लिए सूची को पुनरावृत्त करना होगा।

लिंक्डलिस्ट क्लास में दो कंस्ट्रक्टर हैं।

लिंक्डलिस्ट () लिंक्डलिस्ट (संग्रह <; विस्तार ई> सी)

प्रथम कंस्ट्रक्टर एक खाली लिंक्ड सूची बनाता है। दूसरा कंस्ट्रक्टर एक लिंक की गई सूची बनाता है, जिसे तत्वों के साथ आरंभ किया जाता है संग्रह सी.

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

  1. ArrayList द्वारा कार्यान्वित सूची को बेतरतीब ढंग से एक्सेस किया जा सकता है क्योंकि ArrayList सरणी के सूचकांक-आधारित डेटा संरचना को अपनाता है। दूसरी ओर, लिंक्डलिस्ट द्वारा लागू की गई सूची को बेतरतीब ढंग से एक्सेस नहीं किया जा सकता है क्योंकि सूची में किसी विशेष तत्व को प्राप्त करने या एक्सेस करने के लिए आपको सूची को पार करना होगा।
  2. ArrayList द्वारा सूची के तत्वों को संग्रहीत करने के लिए आंतरिक डेटा संरचना का उपयोग किया जाता है गतिशील सरणी सूची से तत्व जोड़े या हटाए जाने के बाद बढ़ सकते हैं या सिकुड़ सकते हैं। हालाँकि, लिंक्डलिस्ट द्वारा आंतरिक डेटा संरचना का उपयोग सूची में तत्वों को संग्रहीत करने के लिए किया जाता है दोगुनी लिंक की गई सूची.
  3. ArrayList का विस्तार होता है AbstractList क्लास जो कि कलेक्शन क्लास भी है, जबकि लिंक्डलिस्ट क्लास फैली हुई है AbstractSequentialList क्लास जो फिर से एक कलेक्शन क्लास है।
  4. ArrayList वर्ग लागू करता है सूची इंटरफ़ेस जबकि, लिंक्डलिस्ट वर्ग लागू करता है सूची, पंक्ति, तथा Deque इंटरफेस।
  5. ArrayList का उपयोग करके कार्यान्वित सूची से तत्वों को एक्सेस करना है और तेज क्योंकि इसमें एक सूचकांक आधारित डेटा संरचना है। दूसरी ओर, सूची को कार्यान्वित करने के लिए कोई सूची आधारित संरचना नहीं है। इसलिए, एक्सेस करने के लिए तत्व तक पहुंचने के लिए सूची पर एक इट्रेटर लागू किया जाता है जो एक्सेस करता है और धीमा लिंक्डलिस्ट में।
  6. हेरफेर Manipulationin ArrayList का उपयोग करके लागू की गई सूची है क्योंकि जब भी किसी तत्व को सूची से जोड़ा जाता है या हटा दिया जाता है, तो सूची में तत्वों को परिवर्तन को समायोजित करने के लिए स्थानांतरित कर दिया जाता है। दूसरी ओर, लिंक्डलिस्ट द्वारा लागू की गई सूची में हेरफेर तेजी से होता है क्योंकि इसमें सूची से तत्वों को हटाने या सूची से हटाने की आवश्यकता नहीं होती है।
  7. ArrayList एक की तरह काम करता है सूची क्योंकि यह लिस्ट इंटरफ़ेस को लागू करता है, जबकि लिंक्डलिस्ट कार्य करता है सूची तथा पंक्ति के रूप में यह सूची और कतार दोनों को लागू करता है।

निष्कर्ष:

जब सूची में तत्वों का लगातार जोड़ या विलोपन होता है, तो LinkedList का उपयोग किया जाना चाहिए क्योंकि यह हेरफेर के दौरान बेहतर प्रदर्शन करता है। यदि सूची में बार-बार खोज लागू की जाती है, तो ArrayList सबसे अच्छा विकल्प है, क्योंकि यह सूची से तत्वों को एक्सेस करते समय बेहतर प्रदर्शन करता है।