Java HashMap 深入 内部解析
2015-09-03 23:53
405 查看
Java HashMap 内部解析
基桶和溢出桶
[code] 在散列文件的存储单位叫桶(Bucket)。假如一个桶能存放m个记录,则当桶中已有m个同义词的记录时,存放第m+1个同义词会发生"溢出"。需要将第m+1个同义词存放到另一个桶中,通常称此桶为**"溢出桶"**。相对地,称前m个同义词存放的桶为"基桶"。
底层实现数据结构
数组+链表数组存放的是链表, 一个数组可能存放了有好几个元素的链表
先计划 hashCode(), 找到存放的数组位置
然后再用 equals() 比较, 相同的话覆盖原值
equals() 返回 false 的话, 则产生 Entry 链
(源码里是把新的元素放在首端, 并指向原来的首端元素, 这样当原来首端元素是 null 的时候, 新加进来的元素指向 null)
占用空间
相关文章推荐
- Java 程序优化:字符串操作、基本运算方法等优化策略(一)
- java学习之一:内部类和final
- eclipse的自动补全 设置空格不上屏幕
- Java:重写equals()和hashCode()
- java中自定义分页标签
- struts2的通配符映射
- eclipse 十六进制查看变量
- eclipse使用前的设置
- JAVA I/0流
- equals()方法的重写
- JavaBean网页电子时钟
- 用java写的远程监控程序
- eclipse 离线安装maven插件m2eclipse
- struts2常用常量总结
- Java泛型
- eclipse3.2安装 + 汉化 + 配置SWT Designer6.2.0
- 2015.09.03 Java设计模式
- JavaEE学习之类加载器
- Java
- [leetcode-274]H-Index(java)