首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

hash地图实现机制

2012-07-28 
hashmap实现机制int uInt key.getHashCode()&0x8FFFFFF(具体多少忘记了,总之就是把它弄成正数) int ind

hashmap实现机制
int uInt = key.getHashCode()&0x8FFFFFF;(具体多少忘记了,总之就是把它弄成正数)
int index = uInt % map.length;

把value放到那个 index位置。

下次访问时再通过 key的hashCode() & 0x8FFFFF;再 % map.length;就知道value放在第几个位置了。
这样map的要得到一个value只跟key运算成index相关,和元素多少相关不大(不大是从理论上说不管多少元素
反正都是根据key算成index直接去那个位置取的,而不会一个一个查找,但实际是相关的,元素多时产生index聚集的机会就多)

如果不同的key得到相同的 index,那么在相同的位置就要保存多个value.
所以hp内部每个元素实际上先放链表实现的Entity.这样一个位置就可以放多个元素。

热点排行