关于hashcode:为什么要重写hashcode方法和equals方法

1、对于值对象,==比拟的是两个对象的值2、对于援用对象,比拟的是两个对象的地址 一、equals()办法public boolean equals(Object obj) { return (this == obj);}” == “:用来判断两个对象是否是同一个对象,也就是通过比拟两个对象的内存地址是否雷同判断是否是同一个对象 二、hashcode()办法依据hashCode办法下面的正文失去以下3点:1、同一个对象重复调用hashCode办法,返回的后果都是统一的。(前提是这个对象没被批改过)2、如果应用equals办法比拟失去两个对象相等,那么这两个对象去调用hashCode办法返回的值是相等的3、两个对象的hashCode值相等,两个对象不肯定相等 总结1、默认的equals()办法比拟的是内存地址2、而默认的hashCode()办法返回的是对象的内存地址转换成的一个整数,实际上指的的也是内存,两个办法能够了解为比拟的都是内存地址。 了解尚浅,仍得持续致力

January 19, 2023 · 1 min · jiezi