倆個對象的hashCode()相同,則equals()也一定為true,對嗎?


不對,倆個對象的hashCode()相同,equals()不一定為true。

代碼示例:

1 String str1 = "通話";
2 String str2 = "重地";
3 System.out.println(String.format("str1:%d | str2:%d",     str1.hashCode(),str2.hashCode()));
4 System.out.println(str1.equals(str2));

執行結果:

str1:1179395 | str2:1179395

false

代碼解讀:很顯然"通話"和"重的"的hashCode()相同,然而equals()則為true,因為在散列表中,hashCode()相等即倆個鍵值對的哈希值相等,然而哈希值相等,並不一定能得出鍵值對相等。

 


免責聲明!

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



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