HashCode

82 阅读1分钟

什么是hashcode?

根据对象信息推导出的一个整数值

hashcode和对象地址、hash算法之间关系

hashcode是hash的一种表现形式,hashcode和地址没有关系,之所以java中说hashcode是地址是因为其是hash算法根据对象地址信息计算出来的一个值。

hashcode的作用?

Java集合有两类,一个list,一个set,前者有序,后者无序但是不允许重复,当我们set时候判断是否重复,通过equals方法,但是元素太多这种方式就很慢,所以有了hashcode。哈希算法提高查找集合的效率,将数据存储在一个个区域,每个对象算出一个哈希码,将哈希码分组,每组对应存储区域,根据一个哈希码就可以找到对应的存储区域

hashcode的理解

他是根据对象的地址换算出一个值,如果这个地址没有数据们可以直接存储,下次可以先调用hashcode算法直接定位到物理内存,如果这个位置有数据就执行equals,相同就不存储,不相同就散列其他地址进行存储,这样就大大降低了equlas方法。