2013-08-06 3 views
8

मुझे उत्सुकता है कि Arrays का उपयोग क्यों किया जाता है जब आप इसके बजाय ऐरेलिस्ट का उपयोग कर सकते हैं? क्या ArrayList का उपयोग करना हमेशा बेहतर नहीं होगा?हमारे पास ArrayLists होने पर Arrays के बारे में जानना क्यों महत्वपूर्ण है?

+2

यदि आप जिस भाषा का उपयोग करने की योजना बना रहे हैं वह जावा है तो आप इसके बारे में चिंता न करें। –

+2

यह एक प्रासंगिक धागा है जो आपकी मदद कर सकता है: http://stackoverflow.com/questions/717218/why-not-always-use-arraylists-in-java-instead-of-plain-ol-arrays – Brian

+1

क्या करें आप इंडेक्स द्वारा एक्सेस की गई स्मृति के एक संगत ब्लॉक के लिए सामान्य कंप्यूटर विज्ञान शब्द के रूप में 'जावा.यूटिल.एरेरे' या "सरणी" के रूप में 'Arrays' का मतलब है? –

उत्तर

6

this comparison देखें।

जैसा कि आप देख सकते हैं, दोनों संरचनाओं के बीच महत्वपूर्ण अंतर हैं। आपको एक या दूसरे (या दोनों) का उपयोग करके एपीआई मिलेंगे, और आपको दोनों के बीच पेशेवर/विपक्ष और कार्यात्मक अंतर को समझना होगा।

एक विशेष अंतर यह है कि एक देशी सरणी मुक्केबाजी/अनबॉक्सिंग की अक्षमताओं के बिना प्राइमेटिव स्टोर कर सकती है। यह महत्वपूर्ण है जब आपके पास डेटा स्ट्रीम/डेटा सेट का प्रतिनिधित्व करने योग्य आकार वाले सरणी हों।

ध्यान दें कि ArrayList कॉन्वेंट नहीं है। यही है, Integer[] एक Number[] है, लेकिन ArrayList<Integer>ArrayList<Number> नहीं है। अधिक जानकारी के लिए here देखें।

+0

"यह एक वर्ग नहीं है" - सही नहीं –

4

Arrays और ArrayList एस अलग-अलग सेवा करते हैं, हालांकि कभी-कभी ओवरलैपिंग, उद्देश्यों।

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

+0

असल में मुझे लगता है कि लड़का अपने प्रश्न पर विचार कर वैक्यूम में कोड कर सकता है ... – Zo72

2

प्रोग्रामिंग मौलिक सिद्धांतों में उचित नींव रखना बहुत महत्वपूर्ण है। इन मौलिक सिद्धांतों में परिवर्तनीय प्रकार, कार्य, तर्क, सरणी आदि जैसी चीजें शामिल हैं। उचित नींव के बिना, जो कुछ भी आप सीखते हैं वह पतन हो सकता है क्योंकि आपके पास उचित नींव नहीं है। दूसरे शब्दों में, मान लीजिए कि आप एक भाषा सीखना चाहते हैं, आप यादों से पूरे वाक्यांशों को सीखना शुरू कर सकते हैं, लेकिन कुछ शब्दों को जीभ से दूर करना और पचाना शुरू करना और पाचन करना शुरू करना है कि आप शब्दों के वाक्यों को कैसे निकाल सकते हैं इसे मजबूर करना और आपको आवश्यक सभी वाक्यों को याद रखना।

2

यदि आप "दृश्यों के पीछे" क्या होता है, या यदि आप सी या असेंबली भाषाओं जैसे निम्न स्तर की भाषा सीखना चाहते हैं, तो बेहतर तरीके से समझना चाहते हैं, तो आपके लिए सरणी सीखना महत्वपूर्ण है।

क्या मैं पूछ सकता हूं कि आप जावा कहां सीख रहे हैं? क्या यह स्कूल/कॉलेज के लिए है? यदि ऐसा है, तो कृपया Arrays के साथ काम करने से कुछ प्राप्त करने का प्रयास करें, क्योंकि उनका उपयोग डेटा संरचनाओं जैसे पाठ्यक्रमों में किया जाएगा और विशेष रूप से यदि आप ऐसी भाषा का उपयोग करना शुरू करते हैं जिसमें ArrayList समकक्ष नहीं है।

इसके बारे में सब कुछ जानें। जो हो रहा है उसे समझना फायदेमंद है।

4

ऐसी कई चीजें हैं जो आप सरणी के साथ कर सकते हैं जिन्हें आप ArrayList एस के साथ नहीं कर सकते हैं। उदाहरण के लिए,

  1. एक byte[] या एक char[]
  2. कॉल एक देशी सांख्यिक या ग्राफिक्स पुस्तकालय है कि वैक्टर, या मैट्रिक्स के रूप में float[] या double[] रों
  3. में प्रतिनिधित्व के साथ सौदों का उपयोग कर एक फ़ाइल से अनेक बाइट या कोड-इकाइयों पढ़ें

आप ArrayList के बजाय अन्य गैर-आदिम-सरणी सार तत्वों का उपयोग कर सकते हैं, लेकिन कभी-कभी संख्यात्मक इकाइयों में विभाजित स्मृति के एक संगत क्षेत्र का प्रतिनिधित्व करने का सबसे अच्छा तरीका एक सरणी का उपयोग कर रहा है।

0
String []array = { "I","DO","NOT","RESIZE" }; 
+0

@arshajii बिल्कुल नहीं। बस सबसे सरल उदाहरण मैं सरणी और सरणीसूची के बीच अंतर दिखाने के लिए सोच सकता था। – Zo72

संबंधित मुद्दे