equals()和hashcode()方法詳解

一、簡介

java.lang.Object類中有非常重要的兩個方法:

public boolean equals(Object obj)

public int hashCode()

Object類是類繼承結構的基礎,所以是每一個類的父類。所有的對象,包括數組,都實現了在Object類中定義的方法。

Object類中equals方法的定義如下:


public boolean equals(Object obj) {  
    return (this == obj);  
} 

明顯地,該函數定義是對兩個對象的地址進行比較。

Object類中hashcode方法的定義如下:

public native int hashCode();

該函數定義說明它是一個本地方法,和本地機器有關。

二、總結

Java對象的eqauls方法和hashCode方法是這樣規定的:

1、相等(相同)的對象必須具有相等的哈希碼(或者散列碼)。

2、如果兩個對象的hashCode相同,它們並不一定相同。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章