码迷,mamicode.com
首页 > 其他好文 > 详细

HashSet 与HashMap底层实现

时间:2014-05-09 10:39:22      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:code   ext   c   set   a   初始化   

1. HashSet底层通过包装HashMap来实现,HashSet在添加一个值的时候,实际上是将此值作为HashMap中的key来进行保存。

2. HashMap的底层实现是通过初始化化一个Entry数组来实现key、value的保存。

3. 在HashMap的Entry中有四个变量,key、value、hash、next,其中next用于在hash方法添加值冲突时候,所指向的下一个值。

4. 在HashMap中添加值步骤

    第一步,对key的hashcode进行hash计算,获取应该保存到数组中的index。

   第二步,判断index所指向的数组元素是否为空,如果为空则直接插入。

   第三步,如果不为空,则依次查找entry中next所指定的元素,判读key是否相等,如果相等,则替换久的值,返回。

   第四步,如果都不相等,则将此链表头元素赋值给待插入entry的next变量,让后将待插入元素插入到entry数组中去。

5. map遍历方法有两种,keyset 和Map.Entry

HashSet 与HashMap底层实现,布布扣,bubuko.com

HashSet 与HashMap底层实现

标签:code   ext   c   set   a   初始化   

原文地址:http://www.cnblogs.com/libaoting/p/HasMap.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!