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提供的几种遍历方法,分析他们之间的性能。
若文章中有不正确或者可以有更好的处理方法之处,还请各位不吝赐教。