HashCode的作用 以及重写equals方法为什么要重写HashCode方法?

来源:互联网 发布:飞尸国语完整版网络 编辑:程序博客网 时间:2024/04/27 13:43

  在一个数组中存储对象时,通过hashCode得到的哈希值可以计算数组的引索位置(通常是求余运算),然后可以根据这个引索位置进行存取。hashCode的常规协定:不同的对象不要求一定生成不同的哈希值。因而可能会出现多个对象计算出的引索位置相同(叫hash冲突),这个时候可以用链表保存。取出 出现冲突的对象时,就需要用到equals方法。因而,重写equals方法,应该重写hashCode方法。

  就像在一个桶里存放东西,通过hashCode方法返回的哈希值,可以准确的定位到桶的位置,而通过equals方法,可以确定你是要找桶里的那个元素。  马士兵老师的话:  hashcode表记录了每个对象的地址。通过它可以独一无二的找到相关的对象。

hashcode 的作用

网上解释:http://blog.chenlb.com/2009/09/hashcode-effect.html

原创粉丝点击