HashMap
hashMap
1.结构
数组加单向链表
2.put过程
key => hashCode=key.hashCode => index=hashCode%arry.length(求余) => key和value组成一个实体放到对应的数组位置 =>如果存在数据,头插法插入链表,然后链表下移
3.初始化大小
默认为16,定义数组大小后,hashMap大小初始化为 大于等于 length 的2的幂次方
4.扩容方式
因为链表的查询效率较低,当数据量较大,而数组大小固定时,对应的链表长度就会增加,从而降低查询效率,所以当数据量到达一定程度时,hashMap的size(也就是数组的大小)就会增长为原来的2倍,并重新装载数据