HashSet与HashMap底层实现
2016-04-06 22:59
309 查看
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
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
相关文章推荐
- TCP/IP基础(四)
- STL笔记(7)——Traits编程技法(二)
- 【计算几何入门】poj 1269
- 备份恢复类 面试题
- RTNETLINK answers: File exists错误解决方法
- virtualenv 下安装caffe教程
- 简述UIDatePicker的用法
- 复利计算--结对
- 0406结对编程
- 单元测试--结队
- 关于结对的总结
- OC_数据库常见SQL语句
- MFC OnIdle函数学习
- BestCoder Round #78 (div.2)
- 《常见算法和数据结构》元素排序(2)——希尔排序(动画)
- c++实验3-个人所得税计算器
- js获取url中的查询参数
- 《Algorithm算法》笔记:元素排序(2)——希尔排序
- 四则运算网页版
- 复利计算--结对