HashMap

hashMap

1.结构

​ 数组加单向链表

2.put过程

key => hashCode=key.hashCode => index=hashCode%arry.length(求余) => key和value组成一个实体放到对应的数组位置 =>如果存在数据,头插法插入链表,然后链表下移

3.初始化大小

默认为16,定义数组大小后,hashMap大小初始化为 大于等于 length 的2的幂次方

4.扩容方式

因为链表的查询效率较低,当数据量较大,而数组大小固定时,对应的链表长度就会增加,从而降低查询效率,所以当数据量到达一定程度时,hashMap的size(也就是数组的大小)就会增长为原来的2倍,并重新装载数据

posted @ 2022-06-04 13:17  猫的烦恼  阅读(33)  评论(1编辑  收藏  举报