集合框架之HashMap(一)
HashMap是非常重要的数据结构,并且大部分面试都会问到,优秀的java程序员应当要对HashMap进行深入的了解,今天我们就来剖析一下它。 目录 HashMap简介 成员变量 get和put的流程 hashMap相关的面试题 总结 一.简介 首先,HashMap是一个无序key,value集合,它的底层存储是由数组加链表和红黑树结构组成的的。在进行添加,删除和查找时,效率非常高,如果不考虑哈希碰撞,一次定位就能完成操作,时间复杂度为O(1)。 下面是一个默认长度的hashMap。 二.hashMap的成员变量 1.初始大小 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 这个是值是数组长度,也就是数组的初始最大行数,当然如果碰撞比较多,也有可能hashMap存了200个值,但是容量还是16。当然这不是理想状态。 2.最大值 static final int MAXIMUM_CAPACITY = 1 << 30; 这个没有什么好说的,hashMap最大容量。 3.增长因子 static final float DEFAULT_LOAD_FACTOR = 0.75f; 增长因子,就是如果数组被占用的大小超过当前大小的75%时,就进行扩容,按照当前容量二倍创建一个新的Entry