由浅入深解析HashMap
2016-04-20 22:02
246 查看
HashMap是工作中用的比较多的集合类框架,是java语言中非常重要的数据结构,记得毕业找工作时,面试官都特别喜欢问hashmap和hashtable,由此可见它的重要性。
我计划写一个系列,由浅入深解析HashMap(不知道能不能坚持):
由浅入深解析HashMap---HashMap简单实现 增、删、查。
由浅入深解析HashMap---HashMap扩容
由浅入深解析HashMap---HashMap冲突
由浅入深解析HashMap---HashMap红黑树
由浅入深解析HashMap---HashMap遍历
每个节都是基于前一节,是在前一节的例子上添加功能。
HashMap简单实现 增、删、查。这个章节主要是定义了一个长度为16的数组,不考虑扩容,不考虑冲突。说直白就是对数组的操作,只是这里的下标值不是从1---16这种顺序,而是根据hash值来获取数组下标。
HashMap扩容。这个章节在上一个章节的基础上考虑扩容的问题,在这一章节不考虑hash冲突。
HashMap冲突。同理,这个也是基于上一个章节,但这里不考虑红黑树,即不考虑链表中元素达到一定个数时转换成树结构。
HashMap红黑树。JDK1.8的功能,默认情况下,当冲突个数达到8个时,就会将链表转换成树结构。
HashMap遍历。解析hashmap提供的几种遍历方法,分析他们之间的性能。
若文章中有不正确或者可以有更好的处理方法之处,还请各位不吝赐教。
我计划写一个系列,由浅入深解析HashMap(不知道能不能坚持):
由浅入深解析HashMap---HashMap简单实现 增、删、查。
由浅入深解析HashMap---HashMap扩容
由浅入深解析HashMap---HashMap冲突
由浅入深解析HashMap---HashMap红黑树
由浅入深解析HashMap---HashMap遍历
每个节都是基于前一节,是在前一节的例子上添加功能。
HashMap简单实现 增、删、查。这个章节主要是定义了一个长度为16的数组,不考虑扩容,不考虑冲突。说直白就是对数组的操作,只是这里的下标值不是从1---16这种顺序,而是根据hash值来获取数组下标。
HashMap扩容。这个章节在上一个章节的基础上考虑扩容的问题,在这一章节不考虑hash冲突。
HashMap冲突。同理,这个也是基于上一个章节,但这里不考虑红黑树,即不考虑链表中元素达到一定个数时转换成树结构。
HashMap红黑树。JDK1.8的功能,默认情况下,当冲突个数达到8个时,就会将链表转换成树结构。
HashMap遍历。解析hashmap提供的几种遍历方法,分析他们之间的性能。
若文章中有不正确或者可以有更好的处理方法之处,还请各位不吝赐教。
相关文章推荐
- 20141223--全局使用局部变量+静态变量-02
- 网络通信解析
- 前端开发必备 - Emmet
- TransR/CTransR论文:链接预测
- javascript中的Left,Top,W 4000 idth,Height等相关属性汇总
- 快速排序(Quicksort)的Javascript实现
- windows下批量读取文件夹及子文件夹下的文件名字,方便制作训练样本
- 今天是我的第一次在github上发表博文 3ff8
- crossdomain.xml 文件安全配置 百度云观测、360网站监测 dz论坛crossdomain.xml
- sqlite3函数sqlite3_exec
- 数据库(二):高级检索
- Refactoring with Solr
- Java线程:Condition-线程通信更高效的方式
- 从头认识多线程-1.17 守护线程setDaemon()
- Java开发和运行环境的搭建
- 十进制数转化成N进制数(java实现)
- 自己给自己催眠
- 【一天一道LeetCode】#22. Generate Parentheses
- 【一天一道LeetCode】#22. Generate Parentheses
- java并发-Callable与Future