java hashCode()方法和equals()方法

来源:互联网 发布:未注册双拼域名 编辑:程序博客网 时间:2024/06/08 11:51

equals方法指示其他一个对象和此对象是否相等。在Object类中定义如下:

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

也就是当x和y引用同一个对象时此方法才返回true。


hashCode方法在Object类中声明如下:

    public native int hashCode();

其中native关键字表示java代码引用非java接口。"A native method is a Java method whose implementation is provided by non-java code." 

hashCode方法会根据不同的对象返回不同的整数,一般是通过把对象的地址转换成一个整数来实现。

当重写equals方法的时候常常需要重写hashCode方法来维护约定:相等的对象必须具有相等的哈希码。


如果x.equals(y)返回“true”,那么x和y的hashCode()必须相等;

如果x.equals(y)返回“false”,那么x和y的hashCode()有可能相等,也有可能不等。


1 0
原创粉丝点击