hashcode方法返回的是对象的存储地址,不同的对象返回的hashcode值是不同的。
equals方法比较的是对象的值是否相等,如果相等就返回true,不等就返回false。注意,不能使用null.equals()方法,会报错。
当我们需要将自己写的类存入map中时,就需要重写hashcode方法(除了map用到了hashcode,其他的地方不需要重写hashcode方法),因为,但我们new一个新的对象的时候,会为这个对象指派一个新的属于自己的地址,有一个属于自己的hashcode值,因此尽管这个新的对象的内容和已经存在过的对象的内容一样,在比较的时候,也会返回false。只有重写了hashcode方法,相同内容的对象,才会返回true,达到我们的目的。
以上均属于自己的理解,有什么不对的地方,望各位大佬指正