Java散列和散列码

  散列的价值在于速度:散列使得查询得以快速进行,由于瓶颈位于键的查询速度,因此解决方案之一就是保持键的排序状态,然后使用Collections.binarySearch()进行查询。
  散列则更进一步,它将键保存在某处,以便能够快速找到,存储一组元素最快的数据结构是数组,所以使用它来表示键的信息(键的信息,而不是键本身),但是因为数组不能调整容量,因此就有一个问题:我们希望在Map中保存数量不确定的值,但是如果键的数量被数组的容量限制了,该怎么办呢?
  答案就是:数组并不保存键本身,而是通过键对象生成一个数字,将其作为数组的下标,这个数字就是散列码,由定义在Object中,且可能有你的类覆盖的hashCode()(在计算机科学的术语中称为散列函数)方法生成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值