नीचे जावा 7 के HashMap
कार्यान्वयन (get()
विधि) का स्रोत कोड है। जैसा कि आप देख सकते हैं, प्राप्त विधि में, कुंजी की तुलना करते समय, यह निर्धारित करने के लिए कि क्या लिंक्डलिस्ट में प्रविष्टि कुंजी खोज रही है, दोनों कुंजी 'हैशकोड्स और चाबियों' मानों की तुलना करता है। हालांकि, मुझे लगता है कि यदि दो कुंजियां समान हैं, तो निश्चित रूप से उनके पास एक ही हैशकोड होगा, और यदि दो कुंजी अलग हैं, तो चाबियों के मानों की तुलना करना उन्हें अलग करने के लिए पर्याप्त है। तो कुंजी 'हैशकोड की समानता के बारे में जावा HashMap
स्रोत कोड देखभाल क्यों करती है?हैशपैप कुंजी की तुलना, दोनों कुंजी के हैशकोड और कुंजी के मूल्य की तुलना करें
public V get(Object key) {
if (key == null)
return getForNullKey();
int hash = hash(key.hashCode());
for (Entry<K,V> e = table[indexFor(hash, table.length)];
e != null;
e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k)))
return e.value;
}
return null;
}