LinkedList बनाम ArrayList in Java: प्रमुख अंतरों को जानें



यह लिंक्डलिस्ट बनाम ArrayList लेख आपको उन सूचियों के बीच एक उचित तुलना देगा जो सूची इंटरफ़ेस को लागू करते हैं

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

नीचे इस लेख में शामिल विषय दिए गए हैं:





चलो शुरू करें!

लिंक्डलिस्ट क्या है?

उपरांत सरणियाँ दूसरी सबसे लोकप्रिय डेटा संरचना निश्चित रूप से एक है । एक लिंक की गई सूची एक रैखिक डेटा संरचना है जो एक द्वारा गठित की जाती हैनोड्स की श्रृंखला जिसमें प्रत्येक नोड में एक मान और एक होता हैसूचकश्रृंखला में अगले नोड के लिए।इसके अलावा, टीवह एक सूची में अंतिम लिंक को शून्य करने के लिए इंगित करता है, श्रृंखला के अंत का संकेत देता है।लिंक की गई सूची में एक तत्व को कहा जाता है नोड सूची में पहले नोड को कहा जाता है सिरअंतिम नोड को कहा जाता है पूँछ



मैं आपको इसका एक सरल उदाहरण देता हूं: एक पेपरक्लिप की श्रृंखला की कल्पना करें जो एक साथ जुड़े हुए हैं। आप आसानी से ऊपर या नीचे एक और पेपरक्लिप जोड़ सकते हैं। बीच में एक को सम्मिलित करना भी आसान है। आपको बस इतना करना है कि बीच पर श्रृंखला को तोड़ना है, एक नया पेपरक्लिप जोड़ना है, फिर दूसरे आधे को फिर से जोड़ना है। एक लिंक की गई सूची इसके समान है।

उदाहरण:

पैकेज MyPackage import java.util.LinkedList import java.util.ListIterator public class linklist {public static void main (String args []) {/ * लिंक्ड लिस्ट डिक्लेरेशन * / LinkListl_list = new LinkedList () / * add (String Item) है लिंक की गई सूची में * आइटम जोड़ने के लिए उपयोग किया जाता है * / l_list.add ('Java') l_list.add ('पायथन') l_list.add ('स्काला') l_list.add ('स्विफ्ट') System.out.println ( 'लिंक्ड सूची सामग्री:' + l_list) / * निर्दिष्ट स्थान पर आइटम जोड़ें * / l_list.add (2, 'जावास्क्रिप्ट') l_list.add (3, 'Kotlin') System.out.println ('l_list सामग्री संपादन के बाद: '+ l_list) / * पहले और अंतिम आइटम जोड़ें * / l_list.addFirst (' पहला कोर्स ') l_list.addLast (' अंतिम कोर्स ') System.out.println (' l_list सामग्री इसके अलावा: '+ l_list) / * प्राप्त करें और सूची में आइटम सेट करें * / ऑब्जेक्ट Firstvar = l_list.get (0) System.out.println ('पहला आइटम:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list सामग्री) पहला आइटम अपडेट करने के बाद: '+ l_list) / * एक स्थिति से निकालें * / l_list.remove (1) l_list.remove (2) System.out.println ('2nd और 3rd स्थिति में आइटम को हटाने के बाद लिंक्डलिस्ट' + l_list) / * पहले और अंतिम आइटम को निकालें * / l_list.removeFirst () l_list.removeLast () System.out.print.nn ('पहले और अंतिम आइटम को हटाने के बाद अंतिम सामग्री) : '+ l_list) / * लिंक की गई सूची को सत्यापित करना * / ListIteratoritrator = l_list.listIterator () System.out.println (' itter का उपयोग करके प्रदर्शित सूची: ') जबकि (itrator .hasNext ()) {System.out.println (itrator) ।अगला()) } } }

आउटपुट:



लिंक्ड सूची सामग्री = {जावा, पायथन, स्काला, स्विफ्ट} संपादन के बाद की सामग्री = {जावा, पायथन, जावास्क्रिप्ट, कोटलिन, स्काला, स्विफ्ट} इसके अलावा सामग्री = {पहला कोर्स, जावा, पायथन, जावास्क्रिप्ट, कोटलिन, स्काला, स्विफ्ट अंतिम कोर्स} पहला आइटम = {पहला कोर्स} पहला आइटम अपडेट करने के बाद सामग्री = {जावा ९, जावा, पायथन, जावास्क्रिप्ट, कोटलिन, स्काला, स्विफ्ट, अंतिम कोर्स} दूसरी और तीसरी स्थिति में आइटम को हटाने के बाद सामग्री = {जावा ९, पायथन, कोटलिन, स्काला, स्विफ्ट, लास्ट कोर्स} प्रथम और अंतिम आइटम को हटाने के बाद अंतिम सामग्री = {पायथन, कोटलिन, स्काला, स्विफ्ट} सूची का उपयोग करके प्रदर्शित इट्रेटर = पायथन कोटलीन स्काला स्विफ्ट

अब, अगले विषय पर आगे बढ़ते हैं।

एक ArrayList क्या है?

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

LinkedList-vs-ArrayList-in-Java-Edureka

इन उद्देश्यों के लिए ArrayList का उपयोग किया जाता है:

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

हमें आगे बढ़ते हैं और Java में LinkedList और ArrayList के बीच समानताएं इंगित करते हैं।

LinkedList और ArrayList के बीच समानताएं

ये Java में LinkedList और ArrayList के बीच उल्लेखनीय समानताएँ हैं।

  • ArrayList और LinkedList के कार्यान्वयन हैं सूची इंटरफ़ेस
  • ArrayList और LinkedList दोनों तत्वों के सम्मिलन क्रम को बनाए रखते हैं। इसका मतलब यह है कि सूची तत्वों को प्रदर्शित करते समय, परिणाम सेट में वही क्रम होगा जिसमें तत्वों को सूची में डाला गया है।
  • येArrayList और LinkedList वर्ग गैर-सिंक्रनाइज़ किए गए हैं और उपयोग करके स्पष्ट रूप से सिंक्रनाइज़ किए जा सकते हैं संग्रहसंचालित तरीका।
  • इन वर्गों द्वारा लौटाए गए इटरेटर और लिस्टइंटरेटर फेल-फास्ट हैं। इसका मतलब यह है कि, यदि सूची को बनाने के बाद किसी भी समय संरचनात्मक रूप से संशोधित किया गया है, सिवाय इसकेitter की अपनी हटाने या जोड़ने के तरीके, iterator फेंक देंगे a समवर्ती मद्यनिषेध

LinkedList और ArrayList के बीच अंतर

पहले, आइए Java में LinkedList vs ArrayList की तुलना करने के मापदंडों पर एक नज़र डालते हैं।

Java में LinkedList और ArrayList की तुलना करने के लिए पैरामीटर:

  • ऑपरेशन
  • क्रियान्वयन
  • प्रक्रिया
  • याद
  1. संचालन

किसी आइटम का सम्मिलन, जोड़ और निष्कासन कार्य तेजी से होते हैं लिंक्ड सूची क्योंकि हम जैसा चाहते हैं वैसा ही आकार बदलना होगा सारणी सूची।

२। क्रियान्वयन

सारणी सूची पर आधारित है जबकि गतिशील रूप से बदलने योग्य सरणी की अवधारणा लिंक्ड सूची दोहरी रूप से जुड़ी सूची कार्यान्वयन पर आधारित है

३। प्रक्रिया

सेवा मेरे लिंक्ड सूची वर्ग को एक सूची और एक कतार के रूप में इस्तेमाल किया जा सकता है क्योंकि यह सूची और Deque इंटरफेस को लागू करता है जबकि ArrayList केवल सूचियों को लागू कर सकता है।

चार। याद

सेवा मेरे लिंक्ड सूची एक से अधिक स्मृति खपत करता है सारणी सूची क्योंकि प्रत्येक नोड में ए लिंक्ड सूची दो संदर्भों को संग्रहीत करता है, जबकि सारणी सूची केवल डेटा और इसका सूचकांक रखता है

LinkedList जावा में ArrayList बनाम

पैरामीटरलिंक्ड सूचीसारणी सूची
संचालन

सम्मिलन, जोड़ और हटाने का कार्य काफी तेज है

तुलनात्मक रूप से संचालनयहाँ धीमे हैं

क्रियान्वयन

Doubly लिंक्ड सूची कार्यान्वयन का अनुसरण करता है

गतिशील रूप से बदलने योग्य सरणी की अवधारणा का अनुसरण करता है

प्रक्रिया

एक लिंक्डलिस्ट वर्ग एक सूची और एक कतार हो सकता है क्योंकि यह सूची और डीके इंटरफेस को लागू करता है

एक ArrayList वर्ग एक सूची हो सकती है क्योंकि यह केवल सूचियों को लागू करती है

याद

लिंक्डलिस्ट में मेमोरी की खपत अधिक है

लिंक्डलिस्ट की तुलना में कम

कि सभी लोग! यह इस लेख के अंत में जावा में लिंक्डलिस्ट बनाम एरियर लाइस्ट पर हमें लाता है। मुझे उम्मीद है कि आप लोग इस लेख में सिखाई गई बातों से स्पष्ट हैं।

अगर आपको यह लेख 'LinkedList बनाम ArrayList in Java' पर मिला है, तो देखें 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। हम यहां आपकी यात्रा में हर कदम पर आपकी मदद करने के लिए हैं, और हम एक पाठ्यक्रम के साथ आते हैं, जो छात्रों और पेशेवरों के लिए बनाया गया है, जो एक जावा डेवलपर बनना चाहते हैं।

c ++ पर जाएं