बस कुछ ही मिनट पहले मैंने "जावा में हैश मैप का अधिकतम संभव आकार" के बारे में पूछने के एक प्रश्न का उत्तर दिया। जैसा कि मैंने हमेशा पढ़ा है, हैश मैप एक बढ़ती डेटा-संरचना है। इसका आकार केवल जेवीएम मेमोरी आकार से ही सीमित है। इसलिए मैंने सोचा कि इसके आकार की कोई कठोर सीमा नहीं है और तदनुसार उत्तर दिया गया है। (समान रूप में अच्छी तरह HashSet लिए लागू है।)क्या होता है जब हैश मैप या हैशसेट अधिकतम क्षमता तक पहुंच जाती है?
लेकिन कोई मुझे कह रही है कि के बाद से आकार() HashMap की विधि देता है एक पूर्णांक, वहाँ अपने आकार की सीमा है ठीक कर दिया। एक बिल्कुल सही बिंदु। मैंने बस इसे अपने स्थानीय पर परीक्षण करने की कोशिश की लेकिन असफल रहा, मुझे हैश मैप में 2,147,483,647 से अधिक पूर्णांक डालने के लिए 8 जीबी से अधिक मेमोरी की आवश्यकता है, जो मेरे पास नहीं है।
मेरे सवाल थे:
- क्या होता है जब हम HashMap/HashSet में 2,147,483,647 +1 तत्व सम्मिलित करने का प्रयास करें?
- क्या कोई त्रुटि फेंक दी गई है?
- यदि हां, तो कौन सी त्रुटि? यदि हैश मैप/हैशसेट के साथ क्या नहीं होता है, तो यह पहले से ही मौजूदा तत्व और नया तत्व है?
अगर किसी को 16 जीबी मेमोरी के साथ मशीन तक पहुंच के साथ आशीर्वाद दिया जाता है, तो आप इसे व्यावहारिक रूप से आजमा सकते हैं। :)
MapOverflow.com –
पर आपको 16 जीबी रैम की आवश्यकता नहीं है। बस विंडोज के 64-बिट संस्करण प्राप्त करें और बाकी परीक्षण के लिए पेजफाइल बनाएं। – Mehrdad
मेरा विंडोज भी 32-बिट है :( – Bhushan