1、何时实现hashCode方法
上一篇文章介绍了如何实现equals方法如何实现equals方法,hashCode跟equals一样,都是基类Object中的一个方法。而什么时候该重写hashCode方法呢?其实这个问题的答案我们也许都知道,就是我们的类需要使用到集合框架时,绝大多数情况都要实现equals和hashCode方法,而不能只实现这两个方法其中一个。为什么呢?我们可以看一个例子:
public class Goods {
public int id;
public String goodsName;
@Override
public boolean equals(Object obj) {
if(this == obj)
return true;
if(!(obj instanceof Goods))
return false;
Goods target = (Goods)obj;
if(this.id != target.id)
return false;
if(target.goodsName == null || !target.goodsName.equals(this.goodsName))
return false;
return true;
}
public static void main(String[] args) {
Set<Goods> goodsSet = new HashSet<Goods