HashMap中判斷key條件


if (p.hash == hash && ((k = p.key) == key || (key != null && key.equals(k))))

源碼中為什么使用了equals判斷相等后,同時需要判斷hash碼是否相同?

這里需要注意的是key可以使對象即Object類型的,也可以是Long、Integer等類型;

  如果是object作為key,實際判斷key相等默認使用object=object方式,

  如果是Long、Integer類型作為key時,實際equals方法中判斷的是值是否相同,因此有時會類型不同但是值相同,為了防止這種情況增加了hash碼判斷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM