hashCode函數和toString函數也在Object類中,同樣,所有的類都繼承了這2個函數。
hashCode函數用于生成哈希碼,沒有參數,返回值為整型



把u的值作為鍵存入map中,使用get方法傳入的鍵值和u的值是一樣的,但結果卻為null。因為map并不是根據傳入的鍵去進行一一比較來配對,而是通過計算對象的hashcode來判斷在HashMap中有沒有存在相應的值。此處調用的是默認的hashCode方法,對于內存中不同的對象生成的哈希碼是不一樣的,但從邏輯上來說,如果兩個對象使用equals函數相比較是相等的,那么這兩個對象調用hashCode生成的哈希碼應該是相等的,根據這一原則來復寫hashCode函數。
public int hashCode(){int result =17;result = 31 * result +age;result = 31 * result +name.hashCode();return result;}
toString函數用于把一個對象轉換成字符串,了解對象內部情況,使程序擁有更好的可讀性。復寫toString函數:
public String toString(){String result = "age:" + age + "," + "name:" + name;return result;}
新聞熱點
疑難解答