object類的hashCode()方法用于獲取對象的哈希碼(散列碼)。哈希碼是根據對象的內存地址或者數據計算出來的一個唯一的整數值。hashCode()方法的作用如下:
在哈希表中存儲對象:哈希表(如HashMap、HashSet等)使用對象的哈希碼來確定對象在表中的存儲位置。當需要查找、插入或刪除對象時,可以根據哈希碼快速定位到對象所在的位置,提高了查找效率。
判斷對象相等:hashCode()方法在配合equals()方法使用時,可以判斷兩個對象是否相等。如果兩個對象的哈希碼相同,但equals()方法返回結果為false,則可以判定兩個對象不相等。反之,如果兩個對象的哈希碼不同,則可以確定兩個對象一定不相等。
在集合中去重:在使用集合類(如HashSet)存儲對象時,集合會根據對象的哈希碼來判斷對象是否重復。如果兩個對象的哈希碼相同,且equals()方法返回結果為true,則集合會認為這兩個對象是重復的,只會存儲其中一個對象。
需要注意的是,hashCode()方法的默認實現是根據對象的內存地址計算得到的,因此對于不同的對象,其hashCode()方法返回的哈希碼一般是不同的。但是,如果在對象中重寫了hashCode()方法,可以根據對象的數據來計算哈希碼,從而使得相等的對象具有相同的哈希碼。在重寫hashCode()方法時,需要保證同一對象的hashCode()方法在多次調用時始終返回相同的值,否則可能導致對象在哈希表中無法正確存儲或查找。