在java.lang.Object的規范中,對hasCode有如下的約定:
?1 在一個應用程序執行期間,如果一個對象的equals方法做比較所用到的信息沒有被修改的話,那么對該對象調用多次hashCode方法,它必須返回相同的整數。在同一程序的多次執行過程中,這個整數方法可以不同。
2 如果兩個對象根據equals方法是相等的,那么調用這兩個對象的hashCode方法必須產生同樣的整數結果。
3 如果兩個對象根據equals方法是不相等的,那么調用這兩個對象的hashCode方法,不要求產生不同的整數結果。