में तत्वों की मात्रा मैं चैट एप्लिकेशन बना रहा हूं। वर्तमान में मेरे पास ArrayList
में सभी संदेश हैं, जो मुझे सोचते हैं - ArrayList
डिज़ाइन कितने तत्व हैं? 100? 1.000? 10.000?ArrayList
उत्तर
ArrayList
Integer.MAX_VALUE
तत्वों से अधिक नहीं हो सकता है।
तो 2147483647 अधिकतम है।
ऐरेलिस्ट Integer.MAX_VALUE
तक किसी भी तत्व को पकड़ सकता है - यह इंडेक्स के लिए int
डेटाटाइप का उपयोग करने के डिज़ाइन निर्णय के कारण है। हालांकि महत्वपूर्ण बात यह है कि आप इसके लिए स्मृति आवंटित कैसे कर रहे हैं - स्मृति आवंटन धीमा है - और आप तत्वों को कैसे संसाधित/एक्सेस कर रहे हैं। अकेले भंडारण पहलू से, हालांकि, आप MAX_VALUE
तक सीमित हैं। जावा में, यह 2^31-1 = 2,147,483,647 है।
किसी सामान्य एप्लिकेशन के लिए यह पर्याप्त होना चाहिए। फिर भी, यदि आपको और अधिक चाहिए, तो आप इसके लिए स्रोत कोड आसानी से प्राप्त कर सकते हैं और इसे long
का उपयोग इंडेक्स डेटाटाइप के रूप में करने के लिए संशोधित कर सकते हैं - और फिर Long.MAX_VALUE
तक सीमित हो सकते हैं।
कारण प्रति इंडेक्स को चुनने के कारण नहीं है। इसका कारण सूची कार्यान्वयन की बैकिंग स्टोर के कारण है जिसे सूची में यादृच्छिक पहुंच की वांछित (अमूर्त) एल्गोरिदमिक जटिलता के लिए चुना गया था (जिसके लिए सरणी जैसी व्यवहार की आवश्यकता होती है)। बदले में यह बैकिंग स्टोर (एक सरणी) जावा/जेवीएम में इस सीमा के साथ आता है। हालांकि, कोई भी इंडेक्स ('int') के लिए समान डेटा प्रकार का उपयोग करके उपयोगकर्ता को 2^32 संभावित इंडेक्स देकर नकारात्मक इंटरफेस का उपयोग करने के लिए सूची इंटरफेस को कार्यान्वित कर सकता है, उदाहरण के लिए दो सरणी और कुछ अतिरिक्त ऑब्जेक्ट्स का उपयोग बैकिंग स्टोर के रूप में करना एक सरणी का। – user268396
@ user268396 पर्याप्त मेला, हालांकि आप अभी भी 'ऐरेलिस्ट' के लिए स्रोत प्राप्त कर सकते हैं और अधिकतम आकार को जो भी आप चाहते हैं उसे बढ़ाने के लिए संशोधित कर सकते हैं। उदाहरण के लिए 'ऑब्जेक्ट [] []' का बैकिंग लें और इंडेक्स के रूप में 'long' का उपयोग करें - अब आप' Integer.MAX_VALUE^2' 'तक सीमित हैं। –
जाहिर है, लेकिन मेरा सामान्य मुद्दा यह है कि आपके उत्तर में (जैसा कि बताया गया है) तर्क कार्यान्वयन (प्रदर्शन/एल्गोरिदमिक जटिलता) के कार्यान्वयन और व्यवहार की सीमा के बीच संबंध को याद करता है।चेहरे के मूल्य पर लिया जाने पर, एक उचित अनुवर्ती प्रश्न होगा: क्यों ArrayList का उपयोग करें? यह क्या अच्छा है कि यह सब कुछ कर सकता है 'लिंक्डलिस्ट' का एक सीमित संस्करण है। जिस पर उत्तर "एल्गोरिदमिक जटिलता/प्रदर्शन" है, लेकिन तब सीमा स्पष्ट नहीं है और न ही समझाया गया है। :) – user268396
ऐरेलिस्ट जो सरणी द्वारा समर्थित है, और सरणी के आकार तक सीमित है - यानी Integer.MAX_VALUE।
एक लिंक्डलिस्ट उसी तरह सीमित नहीं है, और इसमें तत्वों की कोई भी मात्रा हो सकती है।
समान प्रश्न max. length of List in Java
देखें http://stackoverflow.com/questions/7632126/maximum-size-of-hashset-vector-linkedlist –
हाँ, मैं देखता हूं ...: पी से सीख लिया, धन्यवाद ...: डी –
ArrayList
के आकार Integer.MAX_VALUE
है की अधिकतम आकार पर अन्य पहलुओं के लिए देखते हैं। ऐसा नहीं है, की List#size() विधि से पहले टिप्पणियां कह रही हैं, List
का अधिकतम आकार Integer.MAX_VALUE
है जैसे bellow।
/**
* Returns the number of elements in this list. If this list contains
* more than <tt>Integer.MAX_VALUE</tt> elements, returns
* <tt>Integer.MAX_VALUE</tt>.
*
* @return the number of elements in this list
*/
int size();
यह है, क्योंकि ArrayList
आंतरिक सरणी का उपयोग करता है और सैद्धांतिक रूप से एक सरणी Integer.MAX_VALUE
के आकार में अधिकतम पर हो सकता है। अधिक जानकारी के लिए, आप this देख सकते हैं।
यह नहीं करता बिल्कुल सवाल का जवाब नहीं है। आकार पर जावाडॉक सिर्फ सूची के आकार की रिपोर्टिंग पर सीमा बताता है, यह सूची के अधिकतम आकार के बारे में * कुछ नहीं * कहता है। – SimonC
उत्तर पूरी तरह से भ्रामक है, 'आकार() 'जावाडॉक किसी भी सूची कार्यान्वयन के अधिकतम आकार के लिए कोई संकेत नहीं देता है। – SimonC
- 1. ArrayList
- 2. ArrayList
- 3. ArrayList
- 4. ArrayList
- 5. ArrayList
- 6. ArrayList
- 7. ArrayList
- 8. एक ArrayList
- 9. ArrayList प्रश्न
- 10. एक ArrayList
- 11. परिवर्तित ArrayList
- 12. जावा ArrayList
- 13. ArrayList पैरामीटर
- 14. जावा ArrayList
- 15. जावा ArrayList
- 16. जावा ArrayList
- 17. ArrayList Java
- 18. /deserialize ArrayList
- 19. ArrayList BinarySearch
- 20. एक ArrayList
- 21. प्रिंट ArrayList
- 22. एक ArrayList
- 23. ओओपी: ArrayList al = new ArrayList() और सूची अल = नया ArrayList() के बीच अंतर?
- 24. ArrayList <?>, ArrayList, ArrayList <Object> के बीच क्या अंतर है?
- 25. पॉलिमॉर्फिज्म: "ArrayList list = new ArrayList" के बजाय "सूची सूची = नया ArrayList" का उपयोग क्यों करें?
- 26. शुरूआत ArrayList <ArrayList <Int>> कोटलिन
- 27. जावा सूची बनाम ArrayList
- 28. LinkedHashSet या ArrayList
- 29. संशोधित जावा ArrayList पर
- 30. जावा ArrayList.remove() ArrayList
थ्रेडिंग समस्याओं से सावधान रहें। – SLaks
शायद यह मदद करता है: http://www.coderanch.com/t/524745/java/java/Maximum-capacity-arrayList-String-objects –
@MarounMaroun सभी के पास बंद करने के लिए पर्याप्त प्रतिनिधि नहीं है। – CPerkins