हैश मैप के अंदर तत्वों को लिंक की गई सूची (नोड) की सरणी के रूप में संग्रहीत किया जाता है, सरणी में प्रत्येक लिंक की गई सूची एक या अधिक कुंजी के अद्वितीय हैश मान के लिए बाल्टी का प्रतिनिधित्व करती है।
location = (arraylength - 1) & keyhashcode
यहाँ & बिटवाइज़ AND ऑपरेटर का प्रतिनिधित्व करता है:
HashMap में एक प्रविष्टि जोड़ते समय कुंजी hashCode सरणी में, जैसे कुछ बाल्टी के स्थान का निर्धारण किया जाता है।
उदाहरण के लिए: 100 & "ABC".hashCode() = 64 (location of the bucket for the key "ABC")
प्राप्त ऑपरेशन के दौरान यह कुंजी के लिए बाल्टी का स्थान निर्धारित करने में उसी तरह का उपयोग करता है। सबसे अच्छे मामले में प्रत्येक हैशकोड अद्वितीय है और प्रत्येक कुंजी के लिए एक अनूठी बाल्टी में परिणाम मिलता है, इस मामले में प्राप्त विधि केवल बाल्टी स्थान निर्धारित करने और स्थिर ओ (1) के मान को पुनर्प्राप्त करने के लिए समय बिताती है।
सबसे खराब स्थिति के तहत, सभी चाबियाँ एक ही hashCode है और एक ही बाल्टी में जमा हो जाती है, इस पूरी सूची जो हे (एन) की ओर जाता है के माध्यम से traversing का परिणाम है।
जावा 8 के मामले में, यदि आकार 8 से अधिक हो जाता है तो लिंक्ड लिस्ट बाल्टी को ट्रीमैप के साथ प्रतिस्थापित किया जाता है, इससे ओ (लॉग एन) में सबसे खराब केस सर्च दक्षता कम हो जाती है।
बिग ओ अंकन एक ऊपरी आप कर रहे हैं विश्लेषण के विशेष प्रकार के लिए बाध्य कर देता है। आपको अभी भी निर्दिष्ट करना चाहिए कि क्या आपको सबसे बुरी स्थिति, औसत मामले इत्यादि में रुचि है या नहीं। –
मुझे पता है कि यह कोई जवाब नहीं हो सकता है लेकिन मुझे याद है कि विकिपीडिया में [बहुत अच्छा लेख] है (http://en.wikipedia.org/wiki/हैश_टेबल) इसके बारे में। [प्रदर्शन विश्लेषण] न चूकें (http://en.wikipedia.org/wiki/Hash_table#Performance_analysis) अनुभाग –