一、
重写hashCode方法的必要
1、String和Integer这些Java自带的类都重写了hashCode方法,如果String和Integer new出来的对象的内容是一样的,则这些对象的hashCode返回值也是一样的,尽管这些对象
2、不过用户自定义类型则不同,即便是两个内容一模一样的A类对象,它们返回的hashCode值也是不一样的,但是两个内容一模一样的Integer类对象或者String类对象返回的hashCode值却是一样的,因为系统自带的String和Integer类都己经重写了Object的hashCode方法嘛!
3、如果程序员希望自己定义的类对象,占用不同内存空间但内容却是一样的对象调用hashCode方法返回值是一样的,则程序员就必须自己重写hashCode方法。
二、
为什么要重写equals()和hashCode()方法
预备知识:
如果容器中己存在该对象则不再添加,如果不存在,则添加进去!
三、
怎样重写equals()和hashCade()方法
1、如何重写equals()
public boolean equals(Object obj)
{
}
2、如何重写hashCode()方法
public int hashCode()
{
}