关于HashMap扩容机制的小疑问
HashMap内部初始化一个长度为16的数组,完后每个数组都是一个链表的表头,通过数组的长度取余来决定放到数组哪个位置的链表里,完后,当HashMap中的数据容量超过16*0.75,也就是12时,就直接扩容一倍,也就是数组长度变成32了,我不知道这样理解对不对,如果是这样的话,我有个问题
假设我存储在HashMap中的值大部分都分配到这个长度为16的数组的某一个或两个索引的链表中,比如数组【0】,数组【1】,那其实还有十几个数组的值是空的,数组【2】到数组【15】都是空的,如果是这样,到了HashMap容量为12时,就扩容为16*2,不是太浪费了吗,这个时候大部分存储空间还是空的啊