总结:
hashCode 重写之前跟内存地址有关系,
public int hashCode()
{
return 1;
}
重写之后, 和内存地址没关系了, HashSet 先判断 hashCode 是否相同, 然后调用 equals 再比较,
public int hashCode()
{
return this.name.hashCode() + this.age * 21;
}
这么重写的用意是使hashcode相同的对象, 对象内容也相同, 判断效率提高.
至于HashSet 怎么在内存中存储对象就不得而知了. |