1.HashMap中的几个参数
capacity:HashMap中桶的数量,initCapacity只是哈希表在创建时的容量。
size:Entry的个数。
loadFactor:HashMap在其容量自动增加之前可以达到多满的一种尺度。当size>=capacity*loadFactor时,HashMap将调用rehash操作,使得capacity=capacity*2。
2.HashMap的数据结构
Entry数组:数组的长度为capacity
添加Key-Value时:
1)调用key.hashcode()方法
2)计算key在Entry数组中的index
3)假如Entry[index]中存在Entry.key == key || Entry.key.equals(key),则Entry.value=value;
否则新建一Entry至于Entry[index]作为Entry链表结构的头结点。
注:当key为null时特殊处理,此时index=0