> [期末试题第二题](https://github.com/QSCTech/zju-icicles/blob/master/Java%E5%BA%94%E7%94%A8%E6%8A%80%E6%9C%AF/%E8%AF%95%E5%8D%B7/%E6%9C%9F%E6%9C%AB%E8%80%83%E8%AF%95%E7%AD%94%E6%A1%88%20-%20Java%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E8%BF%9B%E9%98%B6%20-%20%E7%BD%91%E6%98%93%E4%BA%91%E8%AF%BE%E5%A0%82.pdf)  我实验得到的结果:HashSet的size是2。 * * * 原因: 1. `public boolean equals(Value v) { return v.i == i; }` 并不是对父类equals(Object var1)的重写。 > 重写部分规则: >* 参数列表与被重写方法的参数列表必须完全相同。 >* 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)。 2. 需要重写equals(Object var1) 和 hashCode() 方法,得到的HashSet的size值才是1
我实验得到的结果:HashSet的size是2。
原因:
public boolean equals(Value v) { return v.i == i; }并不是对父类equals(Object var1)的重写。