hashcode和equals方法的區別與聯系


equals:比較的是兩個對象的內存地址值

hashCode:比較的是兩個對象在hash表中的位置

hashCode的由來:對象的內存地址通過hash函數算法得到hashcode

         1.equal()相等的兩個對象他們的hashCode()肯定相等,也就是用equal()對比是絕對可靠的。

         2.hashCode()相等的兩個對象他們的equal()不一定相等,也就是hashCode()不是絕對可靠的。

 

HashCode的存在主要是為了查找的快捷性

  每當需要對比兩個對象是否相等的時候,首先用hashCode()去對比,如果hashCode()不一樣,則表示這兩個對象肯定不相等(也就不必再用equal()去對比了),如果hashCode()相同,此時再對比他們的equals(),如果equals()也相同,則表示這兩個對象是真的相同了,這樣既能大大提高了效率也保證了對比的絕對正確性!


免責聲明!

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



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