equals() 和 hashcode() 是java.lang.Object类中两个非常重要的方法。
equals()
equals() 比较对象的栈内引用是否相等,但在String、Math、Integer、Double类里,equals() 方法被重写,改为比较堆内对象的内容。一般情况下,equals()被改写,hashcode()相应的也要被改写。
hashCode()
由Object类定义的hashCode()方法对于不同的对象返回不同的integer。一般来说,相等(相同)的对象必须具有相等的哈希码,如果两个对象的hashCode相同,它们并不一定相同。对象在HashSet的存储位置,由该对象的hashCode的返回值决定。