50,549
社区成员
发帖
与我相关
我的任务
分享
tab[i = (n - 1) & hash
源码中的这句 看到了吗? 单纯就HashMap能存储的容量来说,其实跟table的长度是没什么绝对关系的
table 也就是 哈希表 的长度 是用来降低hash冲突的,HashMap在哈希冲突的时候,使用的链表发解决,也就是在同一个hash位置形成链表,当然现在也会根据数据量来改用红黑树,不过本质都是链表法解决hash冲突
假如你的哈希表只有一个位置,那所有的数据都哈希到同一个位置,那HashMap 就变成了 单链表或者红黑树了, 相对于原始的hash结构来说检索性能大大降低了