hashCode方法与哈希存储

       管理很多对象时,如果采用数组这一类的线性表结构,在进行随机查找时效率将非常差,经常需要遍历整个线性表,随着被管对象的增多性能急剧下降。因此希望产生一种高效的管理方式,这时一般会用到哈希存储的方式。

       使用哈希时被存储的对象需要提供一个哈希码(hash code),一般是一个整数值。hashCode方法的功能就是用来提供所在对象的哈希码,根据对象的不同哈希码的值有所不同。一般每定义一个新的类,都要为其重写一个合适的hashCode方法。

       下图显示了哈希存储的工作原理。

         进入哈希存储前,首先调用对象的hashCode方法获取哈希码,定位对象所在的哈希桶。在哈希桶内部,所有的哈希码相同的不同对象是按照线性表的方式存储的。


         从上面的工作原理中可以看出。

       (1)如果管理的对象很多,直接用线性表存储,查找的量非常大,而采用哈希以后,对哈希桶的定位是由计算一步完成的,与对象的个数无关,速度很快;

        (2)在定位了哈希桶以后,只要保证桶里的对象个数不多,进行线性查找也是很快的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值