你想通過一個object的key來拿HashMap的value,HashMap的工作方法是,通過你傳入的object的hashcode在內存中找地址,當找到這個地址後再通過equals方法來比較這個地址中的內容是否和你原來放進去的一樣,一樣就取出value。
hashCode()方法使用來提高Map裏面的搜索效率的,Map會根據不同的hashCode()來放在不同的桶裏面,Map在搜索一個對象的時候先通過hashCode()找到相應的桶,然後再根據equals()方法找到相應的對象.要正確的實現Map裏面查找元素必須滿足一下兩個條件:
(1)當obj1.equals(obj2)爲true時obj1.hashCode() == obj2.hashCode()必須爲true
(2)當obj1.hashCode() != obj2.hashCode()爲true時obj.equals(obj2)必須爲false