सरणी बनाम Arraylists
एरे तत्वों के संग्रह को संग्रहीत करने के लिए सबसे अधिक उपयोग की जाने वाली डेटा संरचना है। अधिकांश प्रोग्रामिंग भाषाएं सरणियों को आसानी से घोषित करने और सरणियों में तत्वों तक पहुंचने के तरीके प्रदान करती हैं। एक सरणी सूची को गतिशील सरणी के रूप में देखा जा सकता है, जो आकार में बढ़ सकता है। इस कारण से, प्रोग्रामर को सरणी सूची के आकार को जानने की आवश्यकता नहीं होती है जब वह इसे परिभाषित कर रहा होता है।
सरणी क्या हैं?
आकृति 1 में दिखाया गया कोड का एक टुकड़ा है जो आम तौर पर किसी सरणी को मान घोषित करने और असाइन करने के लिए उपयोग किया जाता है। चित्र 2 दर्शाता है कि स्मृति में एक सरणी कैसी दिखाई देगी।
इंट वैल्यू[5]; मान[0]=100; मान[1]=101; मान[2]=102; मान[3]=103; मान[4]=104; |
चित्र 1: किसी सरणी को मान घोषित करने और असाइन करने के लिए कोड
100 | 101 | 102 | 103 | 104 |
सूचकांक: 0 | 1 | 2 | 3 | 4 |
चित्र 2: स्मृति में संग्रहीत सरणी
ऊपर कोड, एक सरणी को परिभाषित करता है जो 5 पूर्णांकों को संग्रहीत कर सकता है और उन्हें 0 से 4 सूचकांकों का उपयोग करके एक्सेस किया जाता है। एक सरणी की एक महत्वपूर्ण संपत्ति यह है कि, संपूर्ण सरणी को मेमोरी के एकल ब्लॉक के रूप में आवंटित किया जाता है और प्रत्येक तत्व को इसकी सरणी में अपना स्थान।एक बार एक सरणी परिभाषित हो जाने के बाद, इसका आकार तय हो जाता है। इसलिए यदि आप संकलन समय पर सरणी के आकार के बारे में निश्चित नहीं हैं, तो आपको सुरक्षित पक्ष में रहने के लिए एक बड़ी पर्याप्त सरणी को परिभाषित करना होगा। लेकिन, ज्यादातर बार, हम वास्तव में आवंटित तत्वों की तुलना में कम संख्या में तत्वों का उपयोग करने जा रहे हैं। तो स्मृति की काफी मात्रा वास्तव में बर्बाद हो जाती है। दूसरी ओर यदि "काफी बड़ा सरणी" वास्तव में पर्याप्त बड़ा नहीं है, तो प्रोग्राम क्रैश हो जाएगा।
सरणी सूची क्या हैं?
एक सरणी सूची को एक गतिशील सरणी के रूप में देखा जा सकता है, जो आकार में बढ़ सकती है। इसलिए सरणी सूची उस स्थिति में उपयोग करने के लिए आदर्श हैं जिसमें आप घोषणा के समय आवश्यक तत्वों के आकार को नहीं जानते हैं। जावा में, सरणी सूचियाँ केवल वस्तुओं को पकड़ सकती हैं, वे सीधे आदिम प्रकारों को नहीं रख सकती हैं (आप आदिम प्रकारों को किसी वस्तु के अंदर रख सकते हैं या आदिम प्रकारों के आवरण वर्गों का उपयोग कर सकते हैं)। आम तौर पर सरणी सूचियों को सम्मिलन, विलोपन और खोज करने के तरीकों के साथ प्रदान किया जाता है। किसी तत्व तक पहुँचने की समय जटिलता o (1) है, जबकि सम्मिलन और विलोपन की समय जटिलता o (n) है।जावा में, सरणी सूचियों को फ़ोरैच लूप्स, इटरेटर्स या केवल इंडेक्स का उपयोग करके ट्रेस किया जा सकता है।
सरणी और सरणी सूची में क्या अंतर है
यद्यपि सरणियाँ और सरणी सूचियाँ इस अर्थ में समान हैं कि दोनों का उपयोग तत्वों के संग्रह को संग्रहीत करने के लिए किया जाता है, वे इस बात में भिन्न हैं कि उन्हें कैसे परिभाषित किया जाता है। सरणी को परिभाषित करते समय सरणी का आकार दिया जाना चाहिए, लेकिन आप वास्तविक आकार को जाने बिना एक सरणी सूची को परिभाषित कर सकते हैं। परिभाषित होने के बाद आप एक सरणी सूची में तत्व जोड़ सकते हैं और यह सरणी के साथ संभव नहीं है। लेकिन जावा में, सरणियों में आदिम प्रकार नहीं हो सकते हैं, लेकिन सरणियों का उपयोग आदिम प्रकारों को रखने के लिए किया जा सकता है। लेकिन अगर आपको एक डेटा संरचना की आवश्यकता है जो इसके आकार को बदल सकती है, तो सरणी सूची सबसे अच्छा विकल्प होगा।