[Collections] एक संग्रह में बनाम बनाम लंबाई बनाम आकार


Answers

एफडब्ल्यूआईडब्लू (और यह गायब होने के करीब कुछ भी नहीं है), मैं 'गिनती' पसंद करता हूं क्योंकि ऐसा लगता है कि यह संग्रह में तत्वों / वस्तुओं की संख्या को बहुत स्पष्ट रूप से वापस करने जा रहा है।

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

लेकिन जावा, बीसीएल / नेट, या सी / सी ++ मानक ढांचे / पुस्तकालयों द्वारा उपयोग किए जाने वाले नामकरण सम्मेलनों के लिए जिम्मेदार कोई भी मुझसे पूछने के लिए परेशान नहीं था, इसलिए आप जो कुछ भी उनके साथ आए थे, वे सब अटक गए हैं।

अगर मैं केवल उससे ज्यादा चालाक हूं और बजेर्न नामित किया गया था, तो आप सभी को दुख से बचाया जा सकता है ...

बेशक, वास्तविक दुनिया में वापस, आपको उस भाषा / प्लेटफ़ॉर्म द्वारा उपयोग किए जाने वाले नामकरण सम्मेलन के साथ चिपकने का प्रयास करना चाहिए (उदाहरण के लिए, size() सी ++ में)। ऐसा नहीं लगता है कि यह आपके Array.Length साथ आपकी मदद Array.Length है। Array.Length दुविधा।

Question

कई प्रोग्रामिंग भाषाओं और पुस्तकालयों का उपयोग करने से मैंने संग्रह में तत्वों की कुल संख्या के लिए उपयोग की जाने वाली विभिन्न शर्तों को देखा है।

सबसे आम length , count , और size लगते हैं।

जैसे।

array.length
vector.size()
collection.count

क्या इस्तेमाल करने के लिए कोई पसंदीदा शब्द है? क्या यह इस बात पर निर्भर करता है कि यह किस प्रकार का संग्रह है? अर्थात। परिवर्तनशील / अपरिवर्तनीय

क्या किसी विधि के बजाय संपत्ति होने की प्राथमिकता है?




@ Gbjbaanb के उत्तर में जोड़ रहा है ...

यदि "संपत्ति" का अर्थ मूल्य तक सार्वजनिक पहुंच का तात्पर्य है, तो मैं कहूंगा कि "विधि" को केवल encapsulation प्रदान करने और कार्यान्वयन को छिपाने के लिए प्राथमिकता दी जाती है।

तत्वों को count या आप उस count को कैसे बनाए रखने के बारे में आपको दिमाग बदल सकते हैं। यदि यह एक संपत्ति है, तो आप अटक गए हैं - यदि यह किसी विधि के माध्यम से मूल्यांकन किया गया है, तो आप संग्रह के उपयोगकर्ताओं को प्रभावित किए बिना अंतर्निहित कार्यान्वयन को बदल सकते हैं।




मेरे लिए, यह पूछने की तरह थोड़ा है कि "foreach" प्रत्येक के लिए "बेहतर" है। यह सिर्फ भाषा / ढांचे पर निर्भर करता है।




हम्म ... मैं आकार का उपयोग नहीं करता। क्योंकि यह बाइट्स में आकार के साथ उलझन में हो सकता है। लंबाई - सरणी के लिए कुछ समझदारी कर सकती है, जब तक उन्हें स्मृति के परिणामी बाइट्स का उपयोग करना चाहिए। हालांकि ... लंबाई ... क्या में? गणना स्पष्ट है। कितने तत्व मैं गिनती का उपयोग करूंगा।

संपत्ति / विधि के बारे में, मैं संपत्ति को तेज़ी से चिह्नित करने के लिए उपयोग करता हूं, और इसे धीमा करने के लिए विधि का उपयोग करता हूं।

और, सबसे महत्वपूर्ण - मैं आपके द्वारा उपयोग की जा रही भाषाओं / पुस्तकालयों के मानकों के साथ रहूंगा।