NingG +

Java 基础:equals 方法,判断两个对象是否相等

equals方法,需要满足以下三点:

  1. 自反性:就是说a.equals(a)必须为true。
  2. 对称性:就是说a.equals(b)为true的话,b.equals(a)也必须为true。
  3. 传递性:就是说a.equals(b)为true,并且b.equals(c)为true的话,a.equals(c)也必须为true。

重写 hashCode() 的原则:

Object.equals()方法

代码如下:

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

直接比较两个基础类型的值是否相等、两个对象的内存地址是否相同。

String.equals()方法

String中equals()方法,要求两个String的值相等即可;

代码如下:

public boolean equals(Object anObject) {
if (this == anObject) {
    return true;
}
if (anObject instanceof String) {
    String anotherString = (String)anObject;
    int n = count;
    if (n == anotherString.count) {
	char v1[] = value;
	char v2[] = anotherString.value;
	int i = offset;
	int j = anotherString.offset;
	while (n-- != 0) {
	    if (v1[i++] != v2[j++])
		return false;
	}
	return true;
    }
}
return false;
}
Top