java,hashSet?

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:51:40
@Override
public int hashCode(){
return name.hashCode()^id.hashCode();
}
上面代码中:name.hashCode()^id.hashCode();什么意思?^什么意思?
思路:
equals():判断对象内两个String是否相等.
hashCode():返回id和name的hash特征码的异或后的特征码.

name和id应该是这个类里面的属性或者变量。
name.hashcode()和id。hashcode() 是分别取他们的hashcode。
对他们异或运算后就返回本类的hashcode。定义了本类对hashcode()的覆盖。

^的意思是按位异或,比如
1010^1000=0010
1^0和0^1得1
1^1和0^0得0

计算对象的hashCode,^是按位异或的操作。

先取name属性的的hashCode,返回一个int值,再取id属性的hashCode值,也是个int,再两个int值做异或操作