जावा में डायनामिक ऐरे क्या है?



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

में पहुंचता है जावा में वस्तुओं के रूप में लागू होने वाली सजातीय डेटा संरचनाएं हैं। Arrays एक विशिष्ट डेटा प्रकार के एक या अधिक मान संग्रहीत करती है और समान को संग्रहीत करने के लिए अनुक्रमित पहुंच प्रदान करती है। किसी सरणी में एक विशिष्ट तत्व इसके सूचकांक द्वारा पहुँचा जाता है। इस लेख में, हम निम्नलिखित क्रम में जावा में डायनामिक एरे की चर्चा करेंगे:

जावा में डायनामिक एरे का परिचय

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





जावा में शक्ति के लिए
  • त्वरित खोज । किसी सारणी की तरह ही, जब किसी दिए गए सूचकांक में तत्व को पुनः प्राप्त करते समय, O (1) समय लगता है।



  • चर आकार । हम जितने चाहें उतने तत्व डाल सकते हैं और एक गतिशील सरणी तदनुसार उन्हें धारण करने के लिए विस्तारित होगी।

  • कैश-फ्रेंडली । सरणियों के समान, गतिशील सरणियाँ स्मृति में एक दूसरे के बगल में आइटम रख सकती हैं, इस प्रकार कैश का कुशल उपयोग होता है।



हमारे कोड में गतिशील सरणियों का उपयोग करने के लिए कुछ डाउनसाइड हैं। हालाँकि, हम डायनेमिक सरणियों का उपयोग अधिक से अधिक करते हैं, अधिकांश अनुप्रयोगों में कुछ मामले ऐसे होते हैं, जहाँ वे अपनी सीमाओं के कारण सबसे पसंदीदा विकल्प नहीं बन पाते हैं।

  • सबसे खराब मामला है । आम तौर पर, एक गतिशील सरणी के अंत में एक नए तत्व के अलावा, यह एक उदाहरण पर O (1) लेता है। हालांकि, यदि किसी नए आइटम के लिए डायनेमिक ऐरे में और कोई इंडेक्स नहीं है, तो उसे विस्तार करना होगा, जो एक समय में O (n) लेता है।

    कैसे जावा में गतिशील सरणी बनाने के लिए
  • महंगा आवेषण और हटाता है। सरणियों के समान, तत्व एक दूसरे से सटे संग्रहीत होते हैं। इसलिए किसी एरे के केंद्र में किसी वस्तु को जोड़ने या हटाने के दौरान उसे अन्य तत्वों को धकेलना पड़ता है, जो एक समय में O (n) लेता है।

नीचे दिए गए चित्र दिखाते हैं कि सरणियाँ वास्तविक समय में कैसे काम करती हैं और दर्शाती हैं कि तत्वों को कैसे ढेर किया जाता है। यह यह भी दर्शाता है कि निर्देश औसत मामले और सरणी कार्यों के सबसे खराब मामले के लिए कैसे बदलते हैं।

सरणी - जावा में गतिशील सरणी - edureka

आकार बनाम क्षमता

जब हम एक डायनामिक ऐरे को इनिशियलाइज़ करते हैं, तो डायनेमिक एरे कार्यान्वयन एक निश्चित फिक्स्ड-साइज़ एरे बनाता है। प्रारंभिक आकार कार्यान्वयन से मेल खाती है। उदाहरण के लिए, आइए हम अपने कार्यान्वयन सरणी को 10 सूचकांकों का उपयोग करने के लिए बनाते हैं। अब हम अपने डायनामिक ऐरे में चार आइटम्स जोड़ते हैं। अब, हमारे गतिशील सरणी की लंबाई चार है। हालाँकि, हमारे अंतर्निहित सरणी की लंबाई 10. है। इसलिए, हम कह सकते हैं कि डायनामिक एरे का आकार चार है और इसकी क्षमता 10. है। डायनेमिक ऐरे डायनेमिक एरे के शुरुआती बिंदु और शुरुआती का ट्रैक रखने के लिए एक विशिष्ट एंड इंडेक्स को स्टोर करता है। वह बिंदु जहां से अतिरिक्त क्षमता शुरू होती है।

डबलिंग अपेंडिक्स

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

एक तत्व हटाना

किसी तत्व को किसी सरणी से हटाते समय, डिफ़ॉल्ट 'निकालें ()' विधि अंत से एक तत्व को हटा देती है और स्वचालित रूप से अंतिम सूचकांक पर शून्य को संग्रहीत करती है। यह एक विशिष्ट इंडेक्स पर तत्वों को हटाएएट (i) विधि से भी हटा देगा जहां 'I' इंडेक्स है। निष्कासन (i) विधि दी गई अनुक्रमणिका से बाईं ओर के सभी दायें तत्वों को स्थानांतरित करती है।

एक सरणी का आकार बदलना

जब ऐरे के पास एरे के दाईं ओर कोई डेटा नहीं होता है जो अनावश्यक मेमोरी लेता है, तो विधि srinkSize () अतिरिक्त मेमोरी को मुक्त करती है। जब सभी स्लॉट्स भस्म हो जाते हैं और अतिरिक्त तत्व जोड़ दिए जाते हैं, तो अंतर्निहित निश्चित आकार के सरणी को आकार बढ़ाना पड़ता है। वास्तविक आकार बदलना महंगा है, क्योंकि हमें एक बड़ा सरणी आवंटित करना होगा और एक सरणी से सभी तत्वों को आगे कॉपी करना होगा जो आपके पास एक नए आइटम को अंतिम रूप से जोड़ने से पहले अतिवृद्धि कर सकता है।

नीचे एक कार्यक्रम का उदाहरण दिया गया है, जहां सरणी का आकार पूर्ण हो जाता है और नए तत्वों को नए दोहरे आकार के सरणी में कॉपी किया जाता है। तत्व जो 'महावीर' नामक एक स्ट्रिंग तत्व है, पहले से ही आकार 3 के पूर्ण सरणी के लिए एक अतिरिक्त है।

कैसे सेलेनियम में स्क्रीनशॉट लेने के लिए
आयात java.util.ArrayList आयात java.util.Arays आयात java.util.Scanner पब्लिक क्लास सरणी का आकार दर्ज करें :: ') int size = sc.nextInt () स्ट्रिंग myArray [] = नया स्ट्रिंग [आकार] System.out.println (' सरणी के तत्व दर्ज करें (स्ट्रिंग्स) :: ') i = 0 i

आउटपुट:

इसके साथ, हम जावा आर्टिकल में डायनामिक एरे के अंत में आते हैं। मुझे आशा है कि आपको गतिशील सरणियों के साथ काम करने का एक विचार मिला।

इसकी जाँच पड़ताल करो 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। एडुर्का का जावा J2EE और SOA प्रशिक्षण और प्रमाणन पाठ्यक्रम उन छात्रों और पेशेवरों के लिए डिज़ाइन किया गया है जो जावा डेवलपर बनना चाहते हैं। पाठ्यक्रम आपको जावा प्रोग्रामिंग में एक सिर शुरू करने के लिए डिज़ाइन किया गया है और आपको हाइबरनेट और स्प्रिंग जैसे विभिन्न जावा फ्रेमवर्क के साथ कोर और उन्नत जावा अवधारणाओं दोनों के लिए प्रशिक्षित करता है।

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